Я понимаю контракт между hashcode() и equals(). Я не понимаю, что я должен включать все поля моего класса (bean) при вычислении того же самого? например Мне нужно использовать мой объект bean в коллекции на основе hash и требует сортировки. Класс bean содержит ~ 25 полей.Должен ли я рассматривать все поля при вычислении переопределения hashcode() и equals()?
Нужно ли рассматривать все свое поле, переопределяя HashCode() и euqals()?
No. только те поля, которые необходимы для определения «идентичности» (для хэша-коды) - и что касается равных, это зависит от вас. По умолчанию Object # equals проверяет только ссылочное равенство. –
@ Elliot Как я понимаю, наилучшей практикой является использование тех же полей в hashcode() и equals(). – Diganta
Вы понимаете разницу между * абсолютно необходимой и лучшей практикой? Что вы спрашиваете здесь? –