gpt4 book ai didi

来自多个字段的 Java hashCode

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:14:56 27 4
gpt4 key购买 nike

给定一个这样的类:

class MyObject {
private String id1;
private String id2;

@Override
public boolean equals(Object o) {
if (o == this) return true;
if (!(o instanceof MyObject)) {
return false;
}
MyObject other = (MyObject) o;
return id1.equals(other.id1) || id2.equals(other.id2);
}
}

请注意,相等性不取决于两个字段是否匹配,任何一个字段都有效。什么是适合此类的 hashCode 实现?

最佳答案

这不是 equals 的有效实现。

具体来说,它违反了传递性要求。

因此,除了使所有实例具有相同的哈希码之外,您也无法“正确地”实现 hashCode

关于来自多个字段的 Java hashCode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51386522/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com