Think in Java 中设计 equals()
的五条原则
- 自反性。
即x.equals(x)
为 true - 对称性。
若x.equals(y)
为 true,那么y.equals(x)
为 true - 传递性。
若x.equals(y)
为 true 且y.equals(z)
为 true,那么x.equals(z)
也为 true - 一致性。
对于x.equals(y)
,只要判定信息不变,无论比较多少次结果均应相同。 - 若
x != null
为 true,那么x.equals(null)
为 false