📜  Java中可选的 ifPresentOrElse() 方法和示例

📅  最后修改于: 2022-05-13 01:55:17.348000             🧑  作者: Mango

Java中可选的 ifPresentOrElse() 方法和示例

Java.util.Optional 类ifPresentOrElse(Consumer, Runnable)方法帮助我们对这个 Optional 对象的值执行指定的 Consumer 动作。如果此 Optional 中不存在值,则此方法执行给定的基于空的 Runnable emptyAction,作为第二个参数传递

句法:

public void ifPresentOrElse(Consumer action,
                            Runnable emptyAction)

参数:此方法接受两个参数:

  • action :如果存在值,这是要在此 Optional 上执行的操作。
  • emptyAction :如果不存在值,这是要执行的基于空的操作。

返回值:此方法不返回任何内容。

异常:如果存在值且给定操作为 null,或者不存在值且给定的基于空的操作为 null,则此方法抛出NullPointerException

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

注意:由于该方法是在Java 9 中添加的,因此程序需要 JDK 9 才能执行。

方案一:

// Java program to demonstrate
// Optional.ifPresentOrElse() method
  
import java.util.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // create a Optional
        Optional 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

方案二:

// Java program to demonstrate
// Optional.ifPresentOrElse method
  
import java.util.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // create a Optional
        Optional 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。函数.Consumer-java.lang.Runnable-