Junior — Middle
Чӣ гуна бояд усулҳои equals() дар синфи шумо дуруст иҷро шаванд?
sobes.tech AI
Ҷавоб аз AI
Реализацияи дурусти усули equals() дар синфи Android (Java) бояд ба ин нуқтаҳо диққат диҳад:
- Санҷиши муқоиса бо худ (this == obj).
- Санҷиши он, ки obj null нест ва ба ҳамон синф тааллуқ дорад.
- Табдил додани obj ба навъи зарурӣ.
- Муқоиса кардани майдонҳои муҳим барои баробарӣ.
Масалан, дар иҷроиш:
@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);
}
Ҳамчунин тавсия дода мешавад, ки hashCode() ҳамроҳ бо equals() нависед, то кор дар коллексияҳо дуруст таъмин шавад.