Junior — Middle
Como é que o método equals é implementado em Java e como é que é utilizado para comparar objetos?
sobes.tech IA
Resposta da IA
Em Java, o método equals() está definido na classe Object e serve para comparar objetos quanto à igualdade lógica. Por padrão, ele compara referências (ou seja, verifica se duas variáveis apontam para o mesmo objeto).
Para uma comparação correta do conteúdo dos objetos, as classes geralmente redefinem o método equals(), para comparar os campos significativos dos objetos.
Exemplo de redefinição de equals():
@Override
public boolean equals(Object obj) {
if (this == obj) return true; // verificação de identidade
if (obj == null || getClass() != obj.getClass()) return false;
MyClass other = (MyClass) obj;
return Objects.equals(field1, other.field1) && field2 == other.field2;
}
É importante que ao redefinir equals(), também se redefina hashCode(), para garantir o funcionamento correto dos objetos em coleções, por exemplo, em HashMap.
Uso:
MyClass a = new MyClass(...);
MyClass b = new MyClass(...);
if (a.equals(b)) {
// os objetos são considerados iguais em conteúdo
}