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

javaobject oriented programmingprogramming更新于 2024/7/22 13:34:00

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

相关文章