Sobes.tech
Junior — Middle

Ako implementujete porovnanie objektov na rovnosť pomocou metódy equals?

sobes.tech AI

Odpoveď od AI

Java-da obyektlərin düzgün müqayisəsi üçün equals metodunu öz sinfinizdə yenidən təyin etməlisiniz, bu metod bütün əhəmiyyətli sahələri nəzərə almalı və obyektlərin bərabərliyini müəyyən etməlidir. Ümumi tövsiyələr:

  • Obyekt null olmamalıdır.
  • Obyektlər eyni sinfə aid olmalıdır.
  • Bərabərliyə təsir edən bütün sahələri müqayisə edin.

Person sinfi üçün nümunə:

@Override
public boolean equals(Object obj) {
    if (this == obj) return true; // referens bərabərliyini yoxlama
    if (obj == null || getClass() != obj.getClass()) return false; // null və sinif yoxlaması
    Person other = (Person) obj;
    return Objects.equals(name, other.name) && age == other.age;
}

Həmçinin, equals metodunu yenidən təyin etdikdə, hashCode metodunu da yenidən təyin etmək tövsiyə olunur, bu kolleksiyalarda düzgün işləmək üçün.