1. 程式人生 > >Optional 之 orElse(T other) 方法

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