Pessoal, preciso saber como testar o método equals desse método sobrescrito:
@Override
public boolean equals(Object obj) {
return this.numero.equals((Integer) obj) && this.banco.equals((Banco) obj);
}
Pessoal, preciso saber como testar o método equals desse método sobrescrito:
@Override
public boolean equals(Object obj) {
return this.numero.equals((Integer) obj) && this.banco.equals((Banco) obj);
}
Pelo que eu sei, a implementação do método equals não é tão simples assim, ela tem tratamentos para null ser passado por parâmetro e outras coisas.
O Eclipse gera o método equals e o método hashCode pra você, a partir dos atributos que você selecionar para a comparação.
Eu acho que não faz sentido isso:
this.numero.equals((Integer) obj) && this.banco.equals((Banco) obj)
Afinal, você espera que “obj” seja um Integer ou que seja um Banco? Isso vai lançar ClassCastException do jeito que está!
Talvez você esteja tentando fazer algo assim:
MinhaClasse objeto = (MinhaClasse) obj; //Não sei o nome da sua Classe, mas deve ser o nome da Classe de "this"
return this.numero.equals(objeto.numero) && this.banco.equals(objeto.banco)
Eu uso o Eclipse… mas não com essa equipe.
Eles optaram pelo Netbeans!
Mas eu consegui resolver o problema:
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null) return false;
if (this.getClass() != obj.getClass()) return false;
Agencia other = (Agencia) obj;
if ((this.numero == null) || (this.banco == null)) {
if ((other.getNumero() == null) || (other.getBanco() == null)) {
return false;
}
} else if (!this.numero.equals(other.getNumero()) && !this.banco.equals(other.getBanco())) {
return false;
}
return true;
}