Junior — Middle
Можете ли објаснити шта значи метода equals у контексту поређења објеката у Јави?
sobes.tech АИ
Одговор од АИ
U Javi, metoda equals se koristi za poređenje sadržaja dva objekta radi utvrđivanja jednakosti. Podrazumevano, ako se ne prepiše, metoda equals iz klase Object poredi reference, tj. proverava da li obe promenljive ukazuju na isti objekat u memoriji.
Da biste poređivali objekte po vrednosti (na primer, po poljima klase), potrebno je prepisati metodu equals. Važno je pridržavati se ugovora metode: ona treba da bude refleksivna, simetrična, tranzitivna, konzistentna i da ne bude jednaka null.
Primer prepisivanja equals u klasi Person:
public class Person {
private String name;
private int age;
@Override
public boolean equals(Object obj) {
if (this == obj) return true; // poređenje sa samim sobom
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);
}
}
Na ovaj način, equals omogućava poređenje objekata po sadržaju, a ne po referenci.