📌  相关文章
📜  Java中的 OptionalDouble orElseThrow(Supplier) 方法及示例(1)

📅  最后修改于: 2023-12-03 15:31:54.718000             🧑  作者: Mango

Java中的 OptionalDouble orElseThrow(Supplier) 方法及示例

在Java中,OptionalDouble是一个用于表示可能缺失的double值的容器。如果一个OptionalDouble实例包含一个值,则isPresent()方法返回true,并且getAsDouble()方法将返回该值。反之,如果OptionalDouble实例为空,则isPresent()方法返回false,并且getAsDouble()方法会抛出一个NoSuchElementException异常。

有时候,当OptionalDouble实例为空时,我们可能想抛出自定义的异常信息而不是NoSuchElementException,这时可以使用orElseThrow(Supplier)方法。该方法将会在OptionalDouble为空时执行参数Supplier中的方法,并将其返回值作为抛出的异常信息。

以下是一个使用orElseThrow(Supplier)方法的示例:

import java.util.OptionalDouble;

public class Example {
    public static void main(String[] args) {
        OptionalDouble optional = OptionalDouble.empty();
        double value = optional.orElseThrow(() -> new RuntimeException("Value is missing!"));
        System.out.println(value);
    }
}

在以上示例中,我们创建了一个空的OptionalDouble实例,并使用orElseThrow()方法打印出了自定义的异常信息。我们可以尝试给optional变量赋一个有值的double值,看看打印的结果会有什么变化。

输出结果为:

Exception in thread "main" java.lang.RuntimeException: Value is missing!
    at Example.lambda$main$0(Example.java:7)
    at java.base/java.util.OptionalDouble.orElseThrow(OptionalDouble.java:344)
    at Example.main(Example.java:8)

可以看出,当OptionalDouble为空时,程序会抛出我们定义的异常信息。