在 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 千次浏览

开启您的 职业生涯

完成课程获得认证

立即开始
广告