假设我有两个类
class A {
private String aStr;
@Override
public int hashCode() {
return Objects.hash(aStr);
}
}
并且
class B extends A {
private String bStr;
@Override
public int hashCode() {
return Objects.hash(bStr);
}
}
作为类
A
的字段仍然是需要在 B
中进行哈希的字段,我该如何正确地在 B.hashCode()
中包含 A
的字段的哈希码呢?以下哪种方式是正确的?Objects.hash(bStr) + super.hashCode();
// these generate a StackOverflowError:
Objects.hash(bStr, (A) this);
Objects.hash(bStr, A.class.cast(this));