java - 基于Object Class的hashcode实现

标签 java equals hashcode

大家好,我这里有一个小问题需要解决。

我创建了一个 equals() 方法,该方法仅基于对象的类,因此如果两个 obj 属于同一类,则 obj1.equals(obj2) 返回 true。 现在我的问题是,我如何实现仅基于 obj 类的 hashcode() ?

@Override
public boolean equals(Object obj){
    if(obj.getClass() == this.getClass()){
        return true;
    }else{
        return false;
    }
}

最佳答案

您可以返回 Class 实例的 hashCode:

public int hashCode ()
{
    return getClass().hashCode();
}

这将确保基于 equals() 实现相等的两个对象将具有相同的 hashCode()

关于java - 基于Object Class的hashcode实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43961801/

相关文章:

java - 为 Factory 类创建的对象注入(inject) Mocks

java - 理解equals方法

java - 在 this.object 为 null 的 Java 中重写 equals 和 hashcode

Java-如何从字符串列表创建哈希ID

.net - 根据.net中的对象标识生成哈希码

java - 管理线程的顺序

java - 哪个与spring一起使用的java orm是最轻量级的?

java - arr.equals(anotherArr) 和 arr == anotherArr 有区别吗?

java - 神经网络: Backpropagation not working (Java)

java - 使用 .equals() 和 == 运算符比较两个对象