Ch03-equals
October 15, 2016
equals() 或者 ==
特性 | 说明 | 代码示例 |
---|---|---|
自反性 | 对于任何非 null 的引用值 x, x.equals(x) 必须返回 true | x.equals(x) // true |
对称性 | 对于任何非 null 的引用值 x 和 y,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 必须返回 true | x.equals(y) == y.equals(x) // true |
传递性 | 对于任何非 null 的引用值 x,y 和 z,如果 x.equals(y) 返回 true,并且 y.equals(z) 返回 true,那么 x.equals(z) 返回 true | x.equals(y) && y.equals(z) => x.equals(z) // true |
一致性 | 对于任何非 null 的引用值 x 和 y,只要 equals 的比较操作在对象中所用的信息没有被修改,多次调用 x.equals(y) 就会一致地返回 true,或者一致地返回 false | x.equals(y) == x.equals(y) // true, false |
与 null 的比较 | x.equals(null) 结果为 false | x.equals(null); // false |