wal*_*ros 7 java type-conversion implicit-conversion
我有一个应用程序,我需要处理来自外部源的很多数字(整数或长整数).
数字可以为空.如果它们为null,我总是需要将它们转换为0.
问题似乎微不足道,但我不想写数百次:
if (someNumber == null) {
someNumber = 0;
}
Run Code Online (Sandbox Code Playgroud)
我不喜欢它有两个原因:
我尝试了其他一些方法,可以在这里看到:
public static void main(String[] args) {
Integer zeroOrNull = new Random().nextBoolean() ? 0 : null;
// version1: this is nasty (I already mentioned why)
if (zeroOrNull == null) {
zeroOrNull = 0;
}
// version2: this seems to much for so simple task...
zeroOrNull = Optional.ofNullable(zeroOrNull).orElseGet(() -> 0);
// version3: creating an util might be considerable. Is there already such predefined util ?
zeroOrNull = MyUtil.getValueOrZero(zeroOrNull); // returns value or )
System.out.println(zeroOrNull); // I want 0 here in case of null
}
Run Code Online (Sandbox Code Playgroud)
什么是做"无效/转换为0"的优先方法?是否有机会隐式进行此转换?
fan*_*ama -1
使用java8 java.util.Optional类非常高效,但不要使用显式的null值,使用空Optional
这是我原来的答案,如果“高效”只是“性能”的意思,我就错了,抱歉。
意味着所有的编码过程都更好,开发和执行更安全。
http://www.oracle.com/technetwork/articles/java/java8-optional-2175753.html