相关疑难解决方法(0)

为什么我需要覆盖Java中的equals和hashCode方法?

最近我读了这个 Developer Works文档.

该文档是关于定义hashCode()equals()有效和正确的,但我无法弄清楚为什么我们需要覆盖这两种方法.

如何有效地实施这些方法?

java equals hashcode

355
推荐指数
15
解决办法
39万
查看次数

为什么我们必须覆盖Java中的equals()方法?

我对我们覆盖该.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;
    }
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么我们必须覆盖该.equals()方法.

java overriding equals

18
推荐指数
3
解决办法
20万
查看次数

标签 统计

equals ×2

java ×2

hashcode ×1

overriding ×1