【发布时间】:2011-09-07 11:41:32
【问题描述】:
如果我有 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。
这表明平等是可传递的,但是不平等呢?
【问题讨论】:
-
这与语言无关,而与不等式的含义有关。
标签: java equals inequality transitivity