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);