【发布时间】:2016-10-24 16:19:49
【问题描述】:
如你所知,java.util.Objects 是
该类由用于操作对象的静态实用方法组成。
其中一种方法是Objects.isNull()。
我的理解是Objects.isNull() 会通过省略第二个= 来消除意外为对象分配空值的机会。
但是,API 说明指出:
此方法的存在是为了用作谓词,filter(Objects::isNull)
是否有任何理由/情况我应该在 if 语句中使用 object == null 而不是 Objects.isNull()?
Objects.isNull() 是否应该仅限于谓词?
【问题讨论】:
-
如果您担心的只是意外分配,您可以简单地使用
if(null == variable)一贯... -
@Holder,有什么意外分配需要担心?这是Java。你会得到一个类型错误。
-
@LouisWasserman 如果
variable是Boolean,则不是。 -
@AlexisC,在极小的情况下,这将是一个问题:你的变量必须是一个非常具体的类型,并且 你必须打一个非常具体的错字,并且你不能使用任何 IDE 或编译器分析来为你指出这一点(就像几乎所有 IDE 一样)。我很放心不用担心那个案子。
-
在工作中,我见过很多 null==object 的实例。当我询问时,我被告知这是为了防止意外的空分配。根据此处提供的 cmets 和答案,我倾向于认为这是一个品味问题。