-1

当一个对象的覆盖equals方法可以obj在下面null时,如果是这样,是什么情况?

@Override
 public boolean equals(Object obj) {
4

2 回答 2

6

是的,equals()应该处理null,在这种情况下,它应该false按照以下文件中的说明返回Object.equals()

对于任何非空引用值xx.equals(null)应该返回false

当然 if x is null x.equals(null)不会返回true,但它会抛出NullPointerException。如果您需要比较两个可能null的参考,请查看Objects.equals(Object, Object)

Objects.equals(x, x);

以上永远是true,即使x == null

于 2013-01-09T20:33:00.833 回答
5

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

于 2013-01-09T20:31:43.463 回答