让我们看看我们有 2 个对用户定义类实例的引用,即 Java 中的 a 和 b。
会不会有一种情况
a == b 但 a.equals(b) 返回 false?
当然!实施.equals()
完全取决于班级,所以我可以写:
class Foo
public boolean equals(Object other) {
return false;
}
}
现在,无论您传递哪两个实例(即使是两次完全相同的实例),我总是会说它们不相等。
这个特别的设置很愚蠢,但它说明你可以获得false
结果来自.equals()
对于同一个对象两次。
请注意,我们在这里讨论的是can发生,而不是什么should。任何类都不应该实现.equals
声明对象不等于其自身的方法。对于受信任的代码,可以合理地假设这种情况永远不会发生。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)