optional.of仅用于包装已确定非空的对象,传入null会立即抛出nullpointerexception;适用于100%确认对象存在的场景,不适用于可能为空的变量。

Optional.of 专门用于包装**已确定非空**的对象,它不会做空值检查,直接将传入对象封装为 Optional 实例。
使用前提:必须确保参数不为 null
如果传入 null,Optional.of 会立即抛出 NullPointerException,不提供任何容错机制。
- 适合用在你 100% 确认对象存在、且希望用 Optional 明确表达“有值”语义的场景
- 不适合用于可能为空的变量(比如方法返回值、用户输入、数据库查询结果等)
基本写法示例
假设你有一个字符串 name = "Alice",确认非空:
Optional
此时 optionalName 是一个包含 "Alice" 的非空 Optional,后续可安全调用 get()、ifPresent()、map() 等方法。
对比其他构造方式
-
Optional.ofNullable(obj):推荐用于可能为空的场景,自动处理null→ 返回Optional.empty() -
Optional.empty():显式创建空 Optional -
Optional.of(obj):仅当 obj 绝对不为 null 时使用,语义更强,但风险更高
常见误用提醒
以下写法危险,运行时会崩溃:
String name = null;Optional
应改用:Optional.ofNullable(name)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











