Возможно, глупый вопрос, но я не хочу облажаться. Скажем, у меня есть два класса Java, Class1
и Class2
, где Class2 расширяет Class1
. Я хочу переопределить Object.hashcode ()
, используя Guava для обоих классов. Для суперкласса у меня есть
@Override
public int hashCode() {
return Objects.hashcode(mField1, mField2);
}
Для Class2, как правильно реализовать hashcode (), который принимает во внимание члены Class1? Это так?
@Override
public int hashcode() {
return Objects.hashcode(super.hashcode(), mField3, mField4);
}
Мне это кажется правильным, но я ищу какое-то подтверждение. Джошуа Блох не рассматривает эту ситуацию в Effective Java, как и документация Guava.