Junior — Middle
U kojim situacijama treba prepisati metodu equals u Javi za ispravno poređenje objekata?
sobes.tech АИ
Одговор од АИ
Метод equals у Јави треба да се препише када желите да дефинишете сопствене критеријуме за једнакост објеката ваше класе, који се разликују од стандардног поређења по референци (које је реализовано у Object).
Ово је посебно важно ако се објекти ваше класе логички сматрају једнаким када одређена поља одговарају, на пример, у класи Person, објекти се сматрају једнаким ако се поклапају име и датум рођења.
Преписивање equals је неопходно да:
- Правилно пореде објекте по садржају.
- Обезбеди правилан рад колекција као што су HashSet или HashMap, које користе equals за одређивање јединствености елемената.
Када преписујете equals, такође је важно да препишете hashCode, како бисте поштовали уговор између ових метода.
Пример преписивања equals и hashCode:
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
Person person = (Person) obj;
return Objects.equals(name, person.name) && Objects.equals(birthDate, person.birthDate);
}
@Override
public int hashCode() {
return Objects.hash(name, birthDate);
}