Я чистил код системы, в которой я работаю, убирал некоторые проблемы с инструментом Sonar, и наткнулся на следующее сообщение:
Переопределите метод equals в этом классе
Я провел некоторое исследование, но ничего не ответило на «почему» этой заметки
Мы используем родительский класс с EqualsBuilder
, который обеспечивает
EqualsBuilder.reflectionEquals
, поэтому исправление заключается в том, чтобы просто объявить метод перезаписанным путем передачи метода equals
родительского класса
@Override
public boolean equals (Object o) {
return super.equals (o);
}
гарантированно я также перезаписываю метод hashCode, но таким же образом передаю ответственность родительскому классу (тот же случай для mirrorHashCode HashCodeBuilder.reflectionHashCode
)
@Override
public int hashCode () {
return super.hashCode ();
}
Но все же мой вопрос остается: почему я должен переопределять этот метод, если он может быть достигнут в наследовании?
Заранее спасибо