Junior — Middle
Чӣ гуна муқоисаи объектҳоро барои баробарӣ тавассути усули equals иҷро мекунӣ?
sobes.tech AI
Ҷавоб аз AI
Барои муқоисаи дурустии объектҳо дар Java тавассути усули equals, бояд ин усулро дар синфи худ такрор кунед, бо дарназардошти ҳамаи майдонҳои муҳим, ки баробарии объектҳоро муайян мекунанд. Тавсияҳои умумӣ:
- Санҷед, ки объект
nullнабошад. - Санҷед, ки объектҳо аз синфи якхела бошанд.
- Ҳама майдонҳое, ки ба баробариро таъсир мерасонанд, муқоиса кунед.
Масалан барои синфи Person:
@Override
public boolean equals(Object obj) {
if (this == obj) return true; // санҷиши баробарии ишора
if (obj == null || getClass() != obj.getClass()) return false; // санҷиши null ва синф
Person other = (Person) obj;
return Objects.equals(name, other.name) && age == other.age;
}
Ҳамчунин тавсия дода мешавад, ки hashCode-ро ҳам такрор кунед, вақте ки equals-ро такрор мекунед, то дар коллексияҳо дуруст кор кунад.