【发布时间】:2019-08-22 22:13:50
【问题描述】:
我很惊讶这个 equals 方法有效.. 即使它使用的是 .equals,因为我已经覆盖了它,所以它不再以旧形式存在..?
我的意思是,如果您查看代码,比较我使用的两个数组元素.equals。
但是.. 如果我要覆盖 equals 方法,.equals 不会只使用我覆盖的方法吗?
我有点困惑,我非常感谢您对它的工作原理进行一些解释。
public boolean equals(Object other) {
if (other instanceof arrayClass) {
arrayClass that = (arrayClass) other;
if (this.number == that.number) {
for (int i = 0; i < this.number; i++) {
if (this.elements[i].equals(that.elements[i])) {
}
else {
return false;
}
}
return true;
}
else {
return false;
}
}
else {
return false;
}
}
注意:number 表示数组长度。
提前致谢!
【问题讨论】:
-
什么是
elements?请提供minimal reproducible example -
但是您正在比较的两个数组元素与您正在比较的对象(
this和that)与您的equals实现不同,所以它是 @987654332 的另一个实现@