java.util.Objects.isNull vs object == null

2022-08-31 08:41:19

如您所知,java.util.Objects

此类由用于对对象进行操作的静态实用工具方法组成。

其中一种方法是 。Objects.isNull()

我的理解是,通过省略第二个,可以消除意外地将空值分配给对象的机会。Objects.isNull()=

但是,API 说明指出:

此方法的存在是为了用作谓词,过滤器(对象::isNull)

if语句中我应该使用over是否有任何理由/情况?object == nullObjects.isNull()

是否应仅限于谓词?Objects.isNull()


答案 1

应该在 if 语句中使用 object == null 而不是 Objects.isNull()?

如果你看一下方法的源代码IsNull

 /* Returns true if the provided reference is null otherwise returns false.*/

 public static boolean isNull(Object obj) {
     return obj == null;
 }

这是一样的。没有区别。因此,您可以安全地使用它。


答案 2

Objects.isNull旨在用于 Java 8 lambda 过滤。

写起来更容易、更清晰:

.stream().filter(Objects::isNull) 

而不是写:

.stream().filter(x -> x == null).  

但是,在语句中,任何一个都可以工作。的使用可能更容易阅读,但最终它将归结为风格偏好。if== null