如果对象的equals
方法覆盖obj
以下null
,那么情况如何?
@Override
public boolean equals(Object obj) {
答案 0 :(得分:6)
是的,equals()
应该处理null
,在这种情况下,它应该返回Object.equals()
中记录的false
:
对于任何非空引用值
x
,x.equals(null)
应返回false
。
当然,如果x
null
x.equals(null)
将不会返回true
,但它会抛出NullPointerException
。如果您需要比较两个可能的null
引用,请查看Objects.equals(Object, Object)
:
Objects.equals(x, x);
上述内容始终为true
,即使x == null
。
答案 1 :(得分:5)
这是一种公共方法。只要调用者将空值传递给它,它就可以为null。你必须妥善处理这个案子。