在 Java 8 之前,空指针异常(
NullPointerException)一直是让开发者头疼的问题之一。为了帮助开发者更好地处理空值,避免空指针异常,Java 8 引入了
Optional 类。本文将详细介绍
Optional 类的用法,并通过具体示例展示它的强大功能。
一、Optional 类概述
Optional 是一个容器类,代表一个值存在或不存在。它提供了一种更安全的方式来处理可能为空的对象,鼓励开发者显式地检查空值而不是让程序在运行时抛出空指针异常。
二、Optional 类的基本用法
1. 创建 Optional 对象
Optional 对象可以通过多种方式创建:
a. 使用 Optional.of()
String name = "Java";
Optional<String> optionalName = Optional.of(name);
System.out.println(optionalName.isPresent()); // 输出:true
b. 使用 Optional.ofNullable()
String name = null;
Optional<String> optionalName = Optional.ofNullable(name);
System.out.println(optionalName.isPresent()); // 输出:false
name = "Java";
optionalName = Optional.ofNullable(name);
System.out.println(optionalName.isPresent()); // 输出:true
Optional.ofNullable() 方法接受一个可能为 null 的值,如果值为 null,则返回一个空的 Optional 对象;否则返回包含该值的 Optional 对象。
c. 使用 Optional.empty()
Optional<String> optionalName = Optional.empty();
System.out.println(optionalName.isPresent()); // 输出:false
2. 检查值是否存在
使用 isPresent() 方法来检查 Optional 对象中是否有值:
Optional<String> optionalName = Optional.of("Java");
if (optionalName.isPresent()) {
System.out.println(optionalName.get()); // 输出:Java
}
3. 获取 Optional 中的值
使用 get() 方法获取 Optional 对象中的值:
Optional<String> optionalName = Optional.of("Java");
String name = optionalName.get();
System.out.println(name); // 输出:Java
如果 Optional 对象中没有值,调用 get() 方法将抛出 NoSuchElementException。
为了避免这种情况,可以使用 orElse() 或 orElseGet() 方法:
a. 使用 orElse()
Optional<String> optionalName
Java 8 Optional 类使用方法及注意事项

最低0.47元/天 解锁文章
1336

被折叠的 条评论
为什么被折叠?



