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; }