首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java.util.Objects.isNull与对象==空

java.util.Objects.isNull与对象==空
EN

Stack Overflow用户
提问于 2016-06-22 15:49:09
回答 5查看 164.6K关注 0票数 132

如你所知,java.util.Objects

该类由用于操作对象的静态实用程序方法组成。

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

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

然而,API说明指出:

此方法存在,用作谓词过滤器(Object::isNull)

object == null if语句中,是否存在使用 over 的任何理由/情况?

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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-06-22 15:51:57

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

如果您查看源代码 of IsNull方法,

代码语言:javascript
运行
复制
 /* Returns true if the provided reference is null otherwise returns false.*/

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

这是一样的。没有什么不同。这样你才能安全地使用它。

票数 126
EN

Stack Overflow用户

发布于 2017-09-03 16:19:08

Objects.isNull是用于Java8lambda过滤的。

写起来容易得多,写得更清楚:

代码语言:javascript
运行
复制
.stream().filter(Objects::isNull) 

比写:

代码语言:javascript
运行
复制
.stream().filter(x -> x == null).  

但是,在if语句中,这两种方法都可以工作。== null的使用可能更容易阅读,但最终它将归结为一种样式偏好。

票数 119
EN

Stack Overflow用户

发布于 2016-06-22 15:52:23

请看资料来源:

代码语言:javascript
运行
复制
public static boolean isNull(Object obj) {
    return obj == null;
}

要检查null值,可以使用:

  • Objects.isNull(myObject)
  • null == myObject // avoids assigning by typo
  • myObject == null // risk of typo

Objects.isNull是针对Predicate的这一事实并不妨碍您如上所示地使用它。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37972859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档