Object类的equals()方法

时间:2014-03-25 10:17:04

标签: java oop jls

我正在阅读JLS, The Class Object并根据它

The method equals defines a notion of object equality, which is based on value, 
not reference, comparison.

但是当我打开equals类的Object方法声明时,它是:

public boolean equals (Object o) {
    return this == o;
}

但是在这里,使用Reference equality operator(==)检查引用,该声明如何与规范匹配?

1 个答案:

答案 0 :(得分:4)

请参阅javadoc for Object's .equals()

  

类Object的equals方法在对象上实现最具辨别力的等价关系;也就是说,对于任何非空引用值x和y,当且仅当x和y引用同一对象时,此方法才返回true(x == y的值为true)。

这意味着,如果你没有在课堂上覆盖它,这就是你得到的。

JLS对于它所说的内容仍然是正确的;但是,由实现来定义自己的.equals()合同。

(当然,如果您覆盖.equals(),则应覆盖.hashCode()