代码对比
✕ Java 8
Stream<String> s = val != null
? Stream.of(val)
: Stream.empty();
✓ Java 9+
Stream<String> s =
Stream.ofNullable(val);
发现此代码有问题? 告诉我们。
为什么现代方式更好
简洁
一次调用替代三元条件表达式。
可链式调用
在 flatMap 中完美配合可空映射使用。
无 null 检查
不需要显式 null 守卫。
旧方式
Null 检查
现代方式
ofNullable()
自 JDK
9
难度
入门
JDK 支持
Stream.ofNullable()
可用
自 JDK 9 起广泛可用(2017 年 9 月)
工作原理
Stream.ofNullable() 在值非 null 时返回单元素流,在 null 时返回空流。这是 flatMap 中处理可空映射的理想选择。
相关文档