Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Qual a vantagem de sobreescrever o método equals?

O professor antes tinha feito da seguinte maneira:

public boolean ehIgual(Conta outra){

    if(this.agencia != outra.agencia){
        return false;
    }
    if(this.numero != outra.numero){
        return false;
    }
    return true;
}

Mas após isso, modificou o método ehIgual para sobreescrever o método equals,

@Override
public boolean equals(Object ref){

    Conta outra = (Conta) ref;

    if(this.agencia != outra.agencia){
        return false;
    }
    if(this.numero != outra.numero){
        return false;
    }
    return true;
}

Qual a vantagem/objetivo em fazer isso??

3 respostas

Oi Caroline.

A maior vantagem em sobrescrever o equals e o hashCode está relacionado com melhorar a busca de objetos.

Veja uma explicação bem interessante aqui: https://medium.com/@angeliski/equals-e-hashcode-o-que-%C3%A9-porque-usar-e-como-implementar-1ee70fa67396#:~:text=A%20maior%20vantagem%20em%20sobrescrever,melhorar%20a%20busca%20dos%20objetos.&text=O%20m%C3%A9todo%20.,correta%20do%20equals%20e%20hashCode.

Não entendi... como assim melhorar a busca de objetos? Seria por causa do @Override?

solução!

Equals é um padrão universal para comparação de objetos, então se alguém que não conhece o seu projeto e quer comparar dois objetos contas, essa pessoa vai tentar usar imediatamente o equals.