📅  最后修改于: 2023-12-03 15:01:56.235000             🧑  作者: Mango
在Java 8中,OptionalDouble类是一个容器,它可以保存基本类型double的值,该值可以是null或非null。OptionalDouble类提供了许多有用的方法来处理double值,其中包括orElseThrow()方法。
orElseThrow()方法允许我们在OptionalDouble对象的值为空时抛出一个异常。该方法接受一个Supplier接口的实现,如果OptionalDouble的值为空,则使用Supplier接口的实现来抛出异常。
下面是一个简单的示例,演示如何使用OptionalDouble的orElseThrow()方法。
import java.util.OptionalDouble;
public class OrElseThrowExample {
public static void main(String[] args) {
OptionalDouble emptyOptional = OptionalDouble.empty();
OptionalDouble populatedOptional = OptionalDouble.of(42.2);
// 为emptyOptional调用orElseThrow
try {
emptyOptional.orElseThrow(() -> new Exception("No value present"));
} catch (Exception e) {
System.out.println(e.getMessage());
}
// 为populatedOptional调用orElseThrow
try {
double result = populatedOptional.orElseThrow(() -> new Exception("No value present"));
System.out.println("Result: " + result);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
在上面的示例中,我们创建了两个OptionalDouble对象,一个是空的,另一个包含一个双精度浮点数值。然后,我们使用orElseThrow()方法为两个OptionalDouble对象调用相同的Supplier接口实现来抛出异常。
当我们为emptyOptional对象调用orElseThrow()方法时,由于OptionalDouble的值为空,Supplier接口会抛出“ No value present”异常。此时我们捕获该异常并打印出来。
当我们为populatedOptional对象调用orElseThrow()方法时,由于OptionalDouble包含一个双精度浮点数值,Supplier接口不会被调用,orElseThrow()方法返回包含的值。此时我们将该值打印出来。
# Java中的 OptionalDouble orElseThrow() 方法及示例
在Java 8中,OptionalDouble类是一个容器,它可以保存基本类型double的值,该值可以是null或非null。OptionalDouble类提供了许多有用的方法来处理double值,其中包括orElseThrow()方法。
## orElseThrow()方法的作用
orElseThrow()方法允许我们在OptionalDouble对象的值为空时抛出一个异常。该方法接受一个Supplier接口的实现,如果OptionalDouble的值为空,则使用Supplier接口的实现来抛出异常。
## 示例:使用orElseThrow()方法
下面是一个简单的示例,演示如何使用OptionalDouble的orElseThrow()方法。
```java
import java.util.OptionalDouble;
public class OrElseThrowExample {
public static void main(String[] args) {
OptionalDouble emptyOptional = OptionalDouble.empty();
OptionalDouble populatedOptional = OptionalDouble.of(42.2);
// 为emptyOptional调用orElseThrow
try {
emptyOptional.orElseThrow(() -> new Exception("No value present"));
} catch (Exception e) {
System.out.println(e.getMessage());
}
// 为populatedOptional调用orElseThrow
try {
double result = populatedOptional.orElseThrow(() -> new Exception("No value present"));
System.out.println("Result: " + result);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
在上面的示例中,我们创建了两个OptionalDouble对象,一个是空的,另一个包含一个双精度浮点数值。然后,我们使用orElseThrow()方法为两个OptionalDouble对象调用相同的Supplier接口实现来抛出异常。
当我们为emptyOptional对象调用orElseThrow()方法时,由于OptionalDouble的值为空,Supplier接口会抛出“ No value present”异常。此时我们捕获该异常并打印出来。
当我们为populatedOptional对象调用orElseThrow()方法时,由于OptionalDouble包含一个双精度浮点数值,Supplier接口不会被调用,orElseThrow()方法返回包含的值。此时我们将该值打印出来。