解答
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,只要未修改对象的equals比较中使用的信息,对x.equals(y)的多次调用将始终返回true或始终返回false。
5.对于任何非null参考值x,x.equals(null)应该返回false。
这些规则当然很合理。你肯定不希望类库实现者在查找数据结构中的一个元素时还要纠结调用 x.equals(y) 还是调用 y.equals(x) 的问题。
帖子还没人回复快来抢沙发