Java Optional orElseGet()方法及示例
Java中 java.util. Optional类的 orElseGet() 方法用于获取该Optional实例的值。 在Java中的 Optional类 的orElseGet()方法是用来获取这个Optional实例的值(如果存在)。如果该Optional实例中没有值,那么该方法将返回从指定供应商那里生成的值。
语法
public T orElseGet(Supplier<T> supplier)
参数: 该方法接受 supplier 作为T类型的参数,以便在这个Optional实例中没有值的情况下生成一个值来返回。
返回供应商: 如果存在的话,此方法返回此可选实例的 值 。如果这个Optional实例中没有值,那么这个方法将返回从指定的供应商那里生成的值。
异常。如果这个Optional实例中没有值,这个方法会抛出NullPointerException。
下面的程序说明了orElseGet()方法:
程序1 :
// Java program to demonstrate// Optional.orElseGet() 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); // orElseGet supplier System.out.println("Value by orElseGet" + "(Supplier) method: " + op.orElseGet( () -> (int)(Math.random() * 10))); }}
输出。
Optional: Optional[9455]Value by orElseGet(Supplier) method: 9455
程序2
// Java program to demonstrate// Optional.orElseGet() 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 { // orElseGet supplier System.out.println("Value by orElseGet" + "(Supplier) method: " + op.orElseGet( () -> (int)(Math.random() * 10))); } catch (Exception e) { System.out.println(e); } }}输出。
Optional: Optional.emptyValue by orElseGet(Supplier) method: 1
参考资料: https://docs.oracle.com/javase/9/docs/api/java/util/Optional.html#orElseGet-java.util.function.Supplier-
