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-