OptionalDouble
时间: 2024-11-04 22:08:49 浏览: 10
Java8新特性之空指针异常的克星Optional类的实现
`OptionalDouble`是Java 8中提供的另一个Optional子类,专门用于表示可能存在也可能不存在的双精度浮点数值。它类似于`Optional`,但是封装的是`double`类型的值,提供了一些特定于浮点数的操作。
`OptionalDouble`同样提供了`isPresent()`方法来判断值是否存在,以及`orElse(double defaultValue)`、`orElseGet(DoubleSupplier supplier)`等方法来提供默认值或者计算值。如果你试图获取一个不存在的`OptionalDouble`,会得到`java.util.NoSuchElementException`。
例如:
```java
OptionalDouble temperature = getTemperature();
if (temperature.isPresent()) {
double temp = temperature.getAsDouble(); // 获取值
} else {
System.out.println("Temperature not available.");
}
// 或者提供默认值
double defaultValue = 0;
double actualTemp = temperature.orElse(defaultValue);
```
使用`OptionalDouble`有助于防止因处理可能为null的浮点数而导致的NullPointerException,并且让你的代码更清晰,表达了对缺失数据的意图。
阅读全文