使用 == 或 != 直接判空是最基础安全的方法;2. 推荐 Objects.nonNull() 提升可读性;3. Optional 可减少显式判空;4. 字符串集合建议用工具类判空;5. 优先返回空对象而非null。核心是先判空再使用,结合工具与设计避免NPE。
在Java中安全判断null是避免NullPointerException的关键。正确使用null检查能提升代码健壮性,尤其是在处理对象、集合、字符串等引用类型时。以下是几种常用且安全的null检查方法。
最基础也最常用的null检查方式是使用==或
!=操作符:
if (str != null) {
System.out.println(str.length());
}
这是最推荐的基础做法,简单明了,编译器和IDE都能很好支持。
Java 7引入的java.util.Objects类提供了更安全的判空方法:
Objects.nonNull(obj):返回boolean,等价于obj != null
Objects.isNull(obj):返回boolean,等价于obj == null
if (Objects.nonNull(list)) {
list.add("item");
}
Java 8引入的Optional旨在减少null带来的风险:
isPresent()、ifPresent()等方式安全访问Optionalopt = Optional.ofNullable(getString()); opt.ifPresent (System.out::println);
适合返回值可能为空的场景,避免调用方忘记判空。
针对常见类型,有一些额外建议:
Objects.equals()或Apache Commons的StringUtils.isEmpty()
CollectionUtils.isEmpty()
if (list != null && !list.isEmpty()) {
// 安全遍历
}
基本上就这些。核心原则是:先判空再使用。结合工具类和设计思路(如返回空对象),能大幅降低null引发的异常风险。不复杂但容易忽略。