nothingistrue
2023-06-09 10:30:19 +08:00
放上 Object.equals 方法的 javadoc 的,8 英文原版、8 中文机器翻译、上古 1.6 官方中文版本,免得白痴再通过以偏概全、扣字眼来拉低水平。
另提示:Object 作为最高基类,具备模板的作用,但它既不是接口,也不是虚拟类; Object 的方法都是实际方法,不是接口方法,也不是虚拟类,在阅读这类方法的 Javacod 时,需要区分好哪些是说自己的,哪些是说给子类的。
__JDK 8 英文原版__
Indicates whether some other object is "equal to" this one.
The equals method implements an equivalence relation on non-null object references:
It is reflexive: for any non-null reference value x, x.equals(x) should return true.
It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
For any non-null reference value x, x.equals(null) should return false.
The equals method for class Object implements the most discriminating possible equivalence relation on objects; that is, for any non-null reference values x and y, this method returns true if and only if x and y refer to the same object (x == y has the value true).
Note that it is generally necessary to override the hashCode method whenever this method is overridden, so as to maintain the general contract for the hashCode method, which states that equal objects must have equal hash codes.
Parameters:
obj - the reference object with which to compare.
Returns:
true if this object is the same as the obj argument; false otherwise.
See Also:
hashCode(), HashMap
__JDK 8 机翻__
指示某个其他对象是否“等于”这个对象。
equals 方法在非空对象引用上实现等价关系:
它是自反的:对于任何非空引用值 x ,x.equals(x) 应该返回 true 。
它是对称的:对于任何非空引用值 x 和 y ,当且仅当 y.equals(x) 返回真时,x.equals(y) 应该返回真。
它是传递性的:对于任何非空引用值 x 、y 和 z ,如果 x.equals(y) 返回 true 并且 y.equals(z) 返回 true ,则 x.equals(z) 应该返回 true 。
它是一致的:对于任何非空引用值 x 和 y ,多次调用 x.equals(y) 始终返回 true 或始终返回 false ,前提是在对象的 equals 比较中使用的信息没有被修改。
对于任何非空引用值 x ,x.equals(null) 应该返回 false 。
类 Object 的 equals 方法在对象上实现了最具鉴别力的可能等价关系; 也就是说,对于任何非空引用值 x 和 y ,当且仅当 x 和 y 引用同一对象( x == y 的值为 true )时,此方法才返回 true 。
请注意,通常需要在重写此方法时重写 hashCode 方法,以维护 hashCode 方法的一般契约,该契约规定相等的对象必须具有相等的哈希码。
参数:
obj - 要与之比较的引用对象。
返回:
如果此对象与 obj 参数相同,则为真;否则为真。 否则为假。
也可以看看:
hashCode(), HashMap