Ch03-equals

Ch03-equals

October 15, 2016
Software Engineering
software

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