Junior — Middle
Vai jūs varat izskaidrot, ko nozīmē metode equals Java objektu salīdzināšanas kontekstā?
sobes.tech AI
Atbilde no AI
Java valodā equals metode tiek izmantots, lai salīdzinātu divu objektu saturu uz vienādību. Noklusējuma gadījumā, ja tas netiek pārrakstīts, Object klases equals metode salīdzina atsauces, tas ir, pārbauda, vai abas mainīgās norāda uz to pašu objektu atmiņā.
Lai salīdzinātu objektus pēc vērtības (piemēram, pēc klases laukiem), ir nepieciešams pārrakstīt equals metodi. Ir svarīgi ievērot metodes līgumu: tā jābūt refleksīvai, simetriskai, tranzitīvai, konsekventai un nedrīkst būt vienāda ar null.
Piemērs, kā pārrakstīt equals Person klasē:
public class Person {
private String name;
private int age;
@Override
public boolean equals(Object obj) {
if (this == obj) return true; // salīdzinājums ar pašu
if (obj == null || getClass() != obj.getClass()) return false;
Person other = (Person) obj;
return age == other.age && Objects.equals(name, other.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
Tādējādi equals ļauj salīdzināt objektus pēc satura, nevis pēc atsauces.