Java Optional or()方法及示例
Java中 java.util.Optional类的 or() 方法是用来获取该Optional实例的任何值。 Java中的 Optional类 的or()方法用于获取这个Optional实例,如果有任何值存在。如果这个Optional实例中没有任何值,那么这个方法就会返回一个具有从指定Supplier那里生成的值的Optional实例。
语法
public Optional<T> or(Supplier<T> supplier)
参数: 该方法接受 Supplier 作为T类型的参数,生成一个具有从指定Supplier生成的值的Optional实例。
返回Supplier: 如果有任何值,该方法将返回这个 Optional实例 。如果这个Optional实例中没有任何值,那么这个方法将返回一个具有从指定Supplier生成的值的Optional实例。
异常。如果提供的函数是空的或者产生的结果是空的,这个方法会抛出NullPointerException。
下面的程序说明了or()方法。
注意:由于该方法是在Java 9中添加的,所以这些程序需要JDK 9来执行。
程序1 :
// Java program to demonstrate
// Optional.or() method
import java.util.*;
import java.util.function.*;
public class GFG {
public static void main(String[] args)
{
// create a Optional
Optional<Integer> op
= Optional.of(9455);
// print supplier
System.out.println("Optional: "
+ op);
// or supplier
System.out.println("Optional by or(() ->"
+ " Optional.of(100)) method: "
+ op.or(() -> Optional.of(100)));
}
}
输出。
Optional: Optional[9455]
Optional by or(() -> Optional.of(100)) method: Optional[9455]
程序2
// Java program to demonstrate
// Optional.or() method
import java.util.*;
import java.util.function.*;
public class GFG {
public static void main(String[] args)
{
// create a Optional
Optional<Integer> op
= Optional.empty();
// print supplier
System.out.println("Optional: "
+ op);
try {
// or supplier
System.out.println("Optional by or(() ->"
+ " Optional.of(100)) method: "
+ op.or(() -> Optional.of(100)));
}
catch (Exception e) {
System.out.println(e);
}
}
}
输出。
Optional: Optional.empty
Optional by or(() -> Optional.of(100)) method: Optional[100]
参考资料: https://docs.oracle.com/javase/9/docs/api/java/util/Optional.html#or-java.util.function.Supplier-