Java语言规范要求equals方法具有以下特性:
1)自反性。对于任何非空引用x,x.equals(x)应该返回true。
2)对称性。对于任何引用x和y,当且仅当y.equals(x)返回true,x.equals(y)也应该返回true。
3)传递性。对于任何引用x,y,z,有x.equals(y)==true,且y.equals(z)==true,则x.equals(z)==true。
4)一致性。如果x和y的引用的对象没有发生变化,反复调用x.equals(y)应该返回同样的结果。
5)对于任意非空引用x,x.equals(null)应该返回false。
相关文章: