鉴于这样的一个类:
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.