Java里如何安全判断null_null检查的语法方法

使用 == 或 != 直接判空是最基础安全的方法;2. 推荐 Objects.nonNull() 提升可读性;3. Optional 可减少显式判空;4. 字符串集合建议用工具类判空;5. 优先返回空对象而非null。核心是先判空再使用,结合工具与设计避免NPE。

在Java中安全判断null是避免NullPointerException的关键。正确使用null检查能提升代码健壮性,尤其是在处理对象、集合、字符串等引用类型时。以下是几种常用且安全的null检查方法。

直接使用 == 或 != 判断null

最基础也最常用的null检查方式是使用==

!=操作符:

  • 如果对象可能为null,先判断再调用方法
  • 适用于所有引用类型
if (str != null) {
    System.out.println(str.length());
}

这是最推荐的基础做法,简单明了,编译器和IDE都能很好支持。

利用Objects工具类进行判空

Java 7引入的java.util.Objects类提供了更安全的判空方法:

  • Objects.nonNull(obj):返回boolean,等价于obj != null
  • Objects.isNull(obj):返回boolean,等价于obj == null
  • 可读性更强,适合函数式编程风格
if (Objects.nonNull(list)) {
    list.add("item");
}

使用Optional减少显式null检查

Java 8引入的Optional旨在减少null带来的风险:

  • 将可能为空的值包装成Optional对象
  • 通过isPresent()ifPresent()等方式安全访问
  • 鼓励“有值才处理”的编程习惯
Optional opt = Optional.ofNullable(getString());
opt.ifPresent(System.out::println);

适合返回值可能为空的场景,避免调用方忘记判空。

字符串和集合的特殊处理建议

针对常见类型,有一些额外建议:

  • 判断字符串是否为空或null,推荐使用Objects.equals()或Apache Commons的StringUtils.isEmpty()
  • 集合判空前先确保不为null,或使用CollectionUtils.isEmpty()
  • 可考虑返回空集合而非null,从根本上避免问题
if (list != null && !list.isEmpty()) {
    // 安全遍历
}

基本上就这些。核心原则是:先判空再使用。结合工具类和设计思路(如返回空对象),能大幅降低null引发的异常风险。不复杂但容易忽略。