Java 当重写时,比较对象是否可以为空?

Java 当重写时,比较对象是否可以为空?,java,Java,当覆盖对象的equals方法时,下面的obj可能是null,如果是,情况是什么 @Override public boolean equals(Object obj) { 这是一种公共方法。只要调用方将null值传递给它,它就可以为null。您必须适当地处理这种情况。是的,equals()应该处理null,在这种情况下,它应该返回false,如中所述: 对于任何非空参考值x,x.equals(null)应返回false 当然,如果x为nullx.equals(null)不会返回true,但会

当覆盖对象的
equals
方法时,下面的
obj
可能是
null
,如果是,情况是什么

@Override
 public boolean equals(Object obj) {

这是一种公共方法。只要调用方将null值传递给它,它就可以为null。您必须适当地处理这种情况。

是的,
equals()
应该处理
null
,在这种情况下,它应该返回
false
,如中所述:

对于任何非空参考值
x
x.equals(null)
应返回
false

当然,如果
x
null
x.equals(null)
不会返回
true
,但会抛出
NullPointerException
。如果需要比较两个可能的
null
引用,请查看:


上述内容始终为
true
,即使
x==null

您的意思是
obj
可能为
null
?如果将其作为参数传递,则为null,@andemoniy yes obj可能为null
Objects.equals(x, x);