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

javaobject oriented programmingprogramming

Optional 类中 ifPresentOrElse() 方法的改进是接受两个参数 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

相关文章