在 Java 9 中使用 Optional.ifPresentOrElse() 方法的目的是什麼?
ifPresentOrElse() 方法在 Optional 類的改進在於接受兩個引數,Consumer 和 Runnable。使用 ifPresentOrElse() 方法的目的是如果一個 Optional 包含一個值,函式 action 會被呼叫到所包含的值,即 action.accept (value),這與 ifPresent() 方法一致。與 ifPresent() 方法的區別在於 ifPresentOrElse() 有第二個引數 emptyAction。如果 Optional 不包含任何值,那麼 ifPresentOrElse() 方法會呼叫 emptyAction,即 emptyAction.run()。
語法
public void ifPresentOrElse(Consumer<? super T> action, Runnable emptyAction)
示例
import java.util.Optional; public class IfPresentOrElseMethodTest { public static void main(String args[]) { Optional<Integer> optional = Optional.of(1); optional.ifPresentOrElse(x -> System.out.println("Value: " + x), () -> System.out.println("Not Present")); optional = Optional.empty(); optional.ifPresentOrElse(x -> System.out.println("Value: " + x), () -> System.out.println("Not Present")); } }
輸出
Value: 1 Not Present
廣告