Java Optional orElseThrow()方法及示例
Java中 java.util. Optional类的 orElseThrow() 方法用于获取该Optional实例的值(如果存在)。 在Java中的 Optional类被 用来获取这个Optional实例的值(如果存在)。如果这个Optional实例中没有值,那么这个方法就会抛出由指定供应商产生的异常。
语法
public <X> T orElseThrow(Supplier<X> exceptionSupplier) throws X extends Throwable
参数: 该方法接受 Supplier 作为X类型的参数,如果该Optional实例中没有值,则抛出一个异常。
返回供应商: 如果存在的话,此方法返回此可选实例的 值 。如果这个Optional实例中没有值,那么这个方法将抛出由指定的供应商产生的异常。
异常。如果这个Optional实例中没有任何值,这个方法会抛出NullPointerException。
下面的程序说明了orElseThrow()方法:
程序1 :
// Java program to demonstrate// Optional.orElseThrow() 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); // orElseThrow supplier System.out.println( "Value by orElseThrow(" + "ArithmeticException::new) method: " + op.orElseThrow( ArithmeticException::new)); }}
输出。
Optional: Optional[9455]Value by orElseThrow(ArithmeticException::new) method: 9455
程序2
// Java program to demonstrate// Optional.orElseThrow() 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 { // orElseThrow supplier System.out.println( "Value by orElseThrow(" + "ArithmeticException::new) method: " + op.orElseThrow( ArithmeticException::new)); } catch (Exception e) { System.out.println(e); } }}输出。
Optional: Optional.emptyjava.lang.ArithmeticException
参考资料: https://docs.oracle.com/javase/9/docs/api/java/util/Optional.html#orElseThrow-java.util.function.Supplier-
