Junior — Middle
Чаро муҳим аст, ки усули equals() дар синфи худ барқарор карда шавад?
sobes.tech AI
Ҷавоб аз AI
Доданиши кардани методи equals() барои муқоисаи дурустии объектҳо ба асоси мундариҷа, на ба асоси истинод муҳим аст. Дар Java, ба таври пешфарз, методи equals() истинодҳоро муқоиса мекунад (яъне, санҷиш мекунад, ки оё тағирёбҳо ба як объект ишора мекунанд).
Агар шумо хоҳед, ки ду объектро баробар ҳисоб кунед, вақте ки баъзе майдонҳо (масалан, идентификатор, ном ва ғайра) мувофиқанд, бояд equals()-ро нависед.
Масалан:
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
MyClass other = (MyClass) obj;
return Objects.equals(field1, other.field1) &&
Objects.equals(field2, other.field2);
}
Бе навиштани equals(), коллекияҳо мисли HashSet ё усулҳои ҷустуҷӯ метавонанд нодуруст кор кунанд.