什么是 Java 8 Optional

Java 8 中的 Optional 是一个可以避免空指针异常(NPE)的容器对象。它提供简洁的方法来检查值是否存在,以及在缺少值时执行可预测的操作。

利用 Optional 避免 NPE

1、首先,要使用 Optional,需要将可能为 null 的值转换为 Optional 对象。可以使用静态工厂方法 Optional.ofNullable(value),该方法接受一个可能为 null 的值,并返回一个 Optional 对象。

Optional<String> optional = Optional.ofNullable(value);
Java

2、接着,可以使用 Optional.isPresent() 方法检查值是否存在,如果存在,可以使用 Optional.get() 方法获取值。

if (optional.isPresent()) {
    String value = optional.get();
    // do something with value
}
Java

3、另外,也可以使用 Optional.orElse() 方法,在值不存在时返回一个默认值,从而避免了 NPE。

String value = optional.orElse("default");
Java

总结

Java 8 中的 Optional 可以有效地避免 NPE,它提供了简洁的方法来检查值是否存在,以及在缺少值时执行可预测的操作。可以使用 Optional.ofNullable(value) 转换可能为 null 的值,使用 Optional.isPresent() 检查值是否存在,使用 Optional.get() 获取值,以及使用 Optional.orElse() 在值不存在时返回一个默认值。