如果我有 3 个对象a、b和c,并且我想检查它们是否彼此相等,我需要检查:
if (!a.equals(b) && !b.equals(c) && !a.equals(c)) { // to simplify, assume non-null
// do something
}
根据 Java 文档,对于正确实现的 equals 方法:
它是可传递的:对于任何非空引用值 x、y 和 z,如果 x.equals(y) 返回 true 并且 y.equals(z) 返回 true,则 x.equals(z) 应该返回 true。
这表明平等是可传递的,但不平等呢?