Java中有没有办法轻松检查null并返回默认值?
在红宝石中,我们有:
nil || 100 # => evaluates to 100
nil || "Hello" # => evaluates to "Hello"
4 || 100 # => evaluates to 4
我知道Java中更简单的方法是:
Double variable = null
variable != null ? variable : 100.0 # => evaluates to 100.0
variable != null ? variable : "Hello" # => evaluates to "Hello"
variable = 4.0
variable != null ? variable : 100.0 # => evaluates to 4.0
答案 0 :(得分:3)
Java8支持Optional
,我们可以使用它来执行:
return Optional.ofNullable(variable).orElse(defaultValue);
Pre-Java8版本不包含此类,但是像Guava, do这样的第三方库提供了类似的类型。
答案 1 :(得分:2)
如果你不经常这样做,那么三元声明就不那么糟了。
如果你需要经常这样做,只需写一点方法来包装三元:
<T> T getOrDefault(T first, T second) {
return first != null ? first : second;
}
答案 2 :(得分:1)
试试这个。
public static <T> T or(T... values) {
for (T value : values)
if (value != null)
return value;
return null;
}
和
System.out.println(or(null, 100)); // -> 100
System.out.println(or(null, "hello")); // -> hello
System.out.println(or(4, 100)); // -> 4
System.out.println(or(null, null, null, "foo")); // -> foo