Java Optional ifPresentOrElse()方法及示例

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.empty
Value is empty

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程