代码对比
✕ Java 8
String name = input != null
? input
: "default";
// easy to get the order wrong
✓ Java 9+
String name = Objects
.requireNonNullElse(
input, "default"
);
发现此代码有问题? 告诉我们。
为什么现代方式更好
意图清晰
方法名准确描述其功能。
null 安全默认
默认值本身不能为 null——这会抛出 NullPointerException。
更简洁
比三元 null 检查更简洁、更易读。
旧方式
三元 null 检查
现代方式
requireNonNullElse()
自 JDK
9
难度
入门
JDK 支持
Objects.requireNonNullElse()
可用
自 JDK 9 起广泛可用(2017 年 9 月)
工作原理
requireNonNullElse 在第一个参数非 null 时返回它,否则返回默认值。与 Objects.requireNonNull() 不同,它不抛出异常——它提供回退值。
相关文档