【发布时间】:2018-04-12 02:14:46
【问题描述】:
我对我们重写 .equals 方法的原因有些困惑。
例如:
Test test1 = new Test(3);
Test test2 = new Test(3);
//The if comparison does the same thing that the overridden `.equals()` method does.
if(test1.equals(test2)){
System.out.println("test1 and test2 are true in .equals()");
}
// Override .equals method.
public boolean equals(Object object) {
if(object instanceof Test && ((Test)object).getValue() == this.t) {
return true;
} else {
return false;
}
}
我不明白为什么我们必须重写 .equals() 方法。
【问题讨论】:
-
test1.equals(test2)如果不覆盖它,将无法按预期工作。 -
注意:如果要覆盖
equals(),则必须覆盖hashCode()
标签: java overriding equals