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