来自多个字段的Java hashCode
发布时间:2020-12-15 00:37:38 所属栏目:Java 来源:网络整理
导读:鉴于这样的一个类: 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.e
鉴于这样的一个类:
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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |