Optional提供了不少检测对象值的方法, 很好的解决了空指针异常指针
get()用来获取对象的值, 可是值为空就抛异常对象
orElse(T other)方法也是获取对象的值, 和get()不一样的是, orElse方法能够传一个其余值, 若是获取的对象值为空, 则返回传入的其余值get
用例:源码
Optional<Boolean> result = Optional.empty(); // 有可能为空:抛异常 if (result.get()) { } // 先判断空再取值,调用两个方法 if (result.isPresent() && result.get()) { } // 使用orElse方法, 若是为空, 返回false if (result.orElse(false)) { }
使用orElse方法使用起来方便又简洁io
看一下源码方法
public T orElse(T other) { return value != null ? value : other; }