Java 中可选的 orElseThrow()方法,带示例

原文:https://www . geesforgeks . org/optional-orelsthrow-method-in-Java-with-examples/

or lsethrow()方法。Java 中的可选类 用于获取这个可选实例的值(如果存在的话)。如果此可选实例中没有值,则此方法将引发从指定供应商生成的异常。

语法:

public <X> T
  orElseThrow(Supplier<X> exceptionSupplier)
  throws X extends Throwable

参数:此方法接受 供应商 作为类型 X 的参数,如果此可选实例中没有值,则抛出异常。

返回供应商:此方法返回此可选实例的(如果存在)。如果此可选实例中没有值,则此方法将引发从指定供应商生成的异常。

异常:如果此可选实例中没有值,此方法将引发空指针异常

下面的程序举例说明了 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));
    }
}

Output:

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);
        }
    }
}

Output:

Optional: Optional.empty
java.lang.ArithmeticException

参考:https://docs . Oracle . com/javase/9/docs/API/Java/util/optional . html # orelstew-Java . util . function . supplier-