覆盖时可以比较对象是否为空?

时间:2013-01-09 20:30:50

标签: java

如果对象的equals方法覆盖obj以下null,那么情况如何?

@Override
 public boolean equals(Object obj) {

2 个答案:

答案 0 :(得分:6)

是的,equals()应该处理null,在这种情况下,它应该返回Object.equals()中记录的false

  

对于任何非空引用值xx.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。你必须妥善处理这个案子。