Optional 之 orElse(T other) 方法

Optional提供了很多检测对象值的方法, 很好的解决了空指针异常

get()用来获取对象的值, 但是值为空就抛异常

orElse(T other)方法也是获取对象的值, 和get()不同的是, orElse方法可以传一个其他值, 如果获取的对象值为空, 则返回传入的其他值

用例:

Optional<Boolean> result = Optional.empty();
// 有可能为空:抛异常
if (result.get()) {
  
}
// 先判断空再取值,调用两个方法
if (result.isPresent() && result.get()) {
  
}
// 使用orElse方法, 如果为空, 返回false
if (result.orElse(false)) {
  
}

使用orElse方法使用起来方便又简洁

看一下源码

public T orElse(T other) {
    return value != null ? value : other;
}

猜你喜欢

转载自my.oschina.net/u/2931319/blog/2878967