在 Java 9 中使用 Optional.ifPresentOrElse() 方法的目的是什麼?


ifPresentOrElse() 方法在 Optional 類的改進在於接受兩個引數,ConsumerRunnable。使用 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

更新於: 2020 年 2 月 25 日

2 千次瀏覽

開啟您的 職業生涯

完成課程獲得認證

立即開始
廣告