当equals()方法基于多个独立字段时,需要确保hashCode()方法也考虑这些字段。这是因为在Java中,如果两个对象的equals()方法返回true,那么它们的hashCode()方法应该返回相同的值。
为了满足这个要求,可以使用以下方法生成hashCode()方法:
@Override
public int hashCode() {
int result = 17;
result = 31 * result + field1.hashCode();
result = 31 * result + field2.hashCode();
// 添加其他字段的hashCode
return result;
}
在这个例子中,我们使用了一个基本的公式来计算hashCode()方法:
这种方法可以确保hashCode()方法考虑了equals()方法中的所有字段,从而避免了潜在的哈希冲突。
领取专属 10元无门槛券
手把手带您无忧上云