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-