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

新手上路,请多包涵

如您所知, java.util.Objects

此类包含用于对对象进行操作的静态实用程序方法。

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

我的理解是 Objects.isNull() 会通过省略第二个 = --- 来消除意外为对象分配空值的机会。

但是,API Note 指出:

此方法存在用作谓词,filter(Objects::isNull)

是否有任何理由/情况我应该在 if 语句 中使用 object == null 而不是 Objects.isNull()

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

原文由 Lucas T 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.1k
2 个回答

应该在 if 语句中使用 object == null over Objects.isNull() 吗?

如果您查看 IsNull 方法的 源代码

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

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

这是相同的。没有区别。所以你可以安全地使用它。

原文由 Suresh Atta 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

写起来更容易也更清晰:

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

比写:

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

但是,在 if 语句中,两者都可以。使用 == null 可能更容易阅读,但最终会归结为风格偏好。

原文由 Craig Taylor 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题