Java OptionalLong orElseThrow(Supplier)方法及示例
OptionalLong类的 orElseThrow(Supplier) 方法是用来获取OptionalLong所包含的长值。如果有一个值存在,这个方法会返回这个值,否则,这个方法会抛出一个由异常供应函数产生的异常。异常供应函数被作为一个参数传递。
语法
public <X extends Throwable> long orElseThrow(Supplier<X> exceptionSupplier) throws X extends Throwable
参数: 该方法接受一个参数 exceptionSupplier ,它是产生一个要抛出的异常的供应函数。
返回值: 如果有的话,该方法返回值。
异常: 该方法抛出以下异常。
X – 如果没有值存在。NullPointerException – 如果没有值并且提供异常的函数为空。X扩展了Throwable下面的程序说明了orElseThrow(Supplier)方法:
程序1 :
// Java program to demonstrate// OptionalLong.orElseThrow(Supplier) method import java.util.OptionalLong; public class GFG { public static void main(String[] args) { // create a OptionalLong OptionalLong opLong = OptionalLong.of(894763545123L); // apply orElseThrow(Supplier) long value = opLong.orElseThrow(ArithmeticException::new); System.out.println("value " + value); }}
输出:
程序2 :
// Java program to demonstrate// OptionalLong.orElseThrow(Supplier) method import java.io.IOException;import java.util.OptionalLong; public class GFG { public static void main(String[] args) { // create a OptionalLong OptionalLong opLong = OptionalLong.empty(); // apply orElseThrow(Supplier) Long value; try { value = opLong.orElseThrow(ArithmeticException::new); } catch (ArithmeticException e) { // TODO Auto-generated catch block System.out.println("Exception " + e); } }}输出:
参考文献: https://docs.oracle.com/javase/10/docs/api/java/util/OptionalLong.html#orElseThrow(java.util.function.Supplier)
