Java Optional orElseThrow()方法及示例

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.empty
java.lang.ArithmeticException

参考资料: https://docs.oracle.com/javase/9/docs/api/java/util/Optional.html#orElseThrow-java.util.function.Supplier-

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程