📅  最后修改于: 2023-12-03 15:31:54.718000             🧑  作者: Mango
在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
为空时,程序会抛出我们定义的异常信息。