Java 中的 Optional 使用技巧
·
一、痛点
传统写法常见空指针:
String name = user.getAddress().getCity().getName(); // NPE!
二、Optional 简介
Optional 是 Java 8 引入的容器类,用于优雅地处理 null。
Optional<String> name = Optional.ofNullable(user)
.map(User::getAddress)
.map(Address::getCity)
.map(City::getName);
System.out.println(name.orElse("未知城市"));
三、常用方法
| 方法 | 作用 |
|---|---|
of(value) |
创建非空 Optional |
ofNullable(value) |
可空创建 |
isPresent() |
是否有值 |
ifPresent(Consumer) |
有值时执行 |
map(Function) |
值映射 |
orElse(value) |
取值或默认值 |
orElseGet(Supplier) |
延迟默认值 |
orElseThrow() |
抛异常 |
四、示例:安全取值
String city = Optional.ofNullable(user)
.map(User::getAddress)
.map(Address::getCity)
.map(City::getName)
.orElse("未知");
五、小结
✅ 优点:
- 避免 NullPointerException
- 代码更简洁、函数式
⚠️ 注意:
- 不建议滥用(特别是实体字段)
- 最佳用途是链式取值与函数式处理
更多推荐

所有评论(0)