Java Optional ifPresentOrElse()方法及示例

来源:这里教程网 时间:2026-02-17 21:02:09 作者:

Java Optional ifPresentOrElse()方法及示例

java.util.Optional类的 ifPresentOrElse(Consumer, Runnable) 方法可以帮助我们执行指定的Consumer动作。 可选类 帮助我们执行指定的消费者行动,该可选对象的值。如果这个Optional对象中不存在一个值,那么这个方法就会执行给定的基于空的Runnable emptyAction,作为第二个参数传递。

语法

public void ifPresentOrElse(Consumer<T> action,                            Runnable emptyAction)

参数: 该方法接受两个参数。

action:如果有一个值,这是要在这个Optional上执行的操作。emptyAction:如果没有值,将执行的基于空的动作。

返回值: 此方法不返回任何东西。

异常: 如果有一个值存在而给定的动作是空的,或者没有值存在而给定的基于空的动作是空的,则该方法抛出 NullPointerException

下面的程序说明了ifPresentOrElse()方法。

注意:由于该方法是在Java 9中添加的,所以这些程序需要JDK 9来执行。

程序1 :

// Java program to demonstrate// Optional.ifPresentOrElse() method  import java.util.*;  public class GFG {      public static void main(String[] args)    {          // create a Optional        Optional<Integer> op            = Optional.of(9455);          // print value        System.out.println("Optional: "                           + op);          // apply ifPresentOrElse        op.ifPresentOrElse(            (value)                -> { System.out.println(                         "Value is present, its: "                         + value); },            ()                -> { System.out.println(                         "Value is empty"); });    }}

输出。

Optional: Optional[9455]Value is present, its: 9455

程序2

// Java program to demonstrate// Optional.ifPresentOrElse method  import java.util.*;  public class GFG {      public static void main(String[] args)    {          // create a Optional        Optional<Integer> op            = Optional.empty();          // print value        System.out.println("Optional: "                           + op);          try {              // apply ifPresentOrElse            op.ifPresentOrElse(                (value)                    -> { System.out.println(                             "Value is present, its: "                             + value); },                ()                    -> { System.out.println(                             "Value is empty"); });        }        catch (Exception e) {            System.out.println(e);        }    }}

输出。

Optional: Optional.emptyValue is empty

参考资料: https://docs.oracle.com/javase/9/docs/api/java/util/Optional.html#ifPresentOrElse-java.util.function.Consumer-java.lang.Runnable-

相关推荐