правильный способ включить суперкласс в реализацию Guava Objects.hashcode ()?

Возможно, глупый вопрос, но я не хочу облажаться. Скажем, у меня есть два класса 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.

22
задан Bozho 23 November 2011 в 23:13
поделиться