如你所知,java.util.Objects
是
该类由用于操作对象的静态实用程序方法组成。
其中一种方法是Objects.isNull()
。
我的理解是,Objects.isNull()
将通过省略第二个=
来消除意外将空值分配给对象的可能性。
然而,API说明指出:
此方法存在,用作谓词过滤器(Object::isNull)
在object == null
if语句中,是否存在使用 over 的任何理由/情况?
Objects.isNull()
是否应该仅限于谓词?
发布于 2016-06-22 15:51:57
在if语句中,应该在Objects.isNull()上使用object Objects.isNull null吗?
如果您查看源代码 of IsNull
方法,
/* Returns true if the provided reference is null otherwise returns false.*/
public static boolean isNull(Object obj) {
return obj == null;
}
这是一样的。没有什么不同。这样你才能安全地使用它。
发布于 2017-09-03 16:19:08
Objects.isNull
是用于Java8lambda过滤的。
写起来容易得多,写得更清楚:
.stream().filter(Objects::isNull)
比写:
.stream().filter(x -> x == null).
但是,在if
语句中,这两种方法都可以工作。== null
的使用可能更容易阅读,但最终它将归结为一种样式偏好。
发布于 2016-06-22 15:52:23
请看资料来源:
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
的这一事实并不妨碍您如上所示地使用它。
https://stackoverflow.com/questions/37972859
复制相似问题