Como no curso, tentei sobrescrever a classe equals como ensinado, mas não obtive sucesso.
Dentro da classe Conta tenho esse código:
@Override
public boolean equals(Object obj) {
System.out.println("estou no seu equals");
Conta outra = (Conta) obj;
if (this.agencia != outra.agencia) {
return false;
} else if (this.numero != outra.numero) {
return false;
} else {
return true;
}
}
E na minha classe de testes tenho esse código:
Conta cc1 = new ContaCorrente(22, 12);
Conta cc2 = new ContaCorrente(33,23);
Conta cc3 = new ContaCorrente(44,45);
Conta cc4 = new ContaCorrente(33,23);
Cliente cli = new Cliente();
ArrayList<Conta> listaDeContas = new ArrayList<Conta>();
listaDeContas.add(cc1);
listaDeContas.add(cc2);
System.out.println(listaDeContas.contains(cli));
Todas as classes foram importadas corretamente, e o eclipse não acusa erro algum. Ao rodar o código era esperado, em qualquer situação, a resposta do método equals:
System.out.println("estou no seu equals");
Mas isso não acontece, aparentando que o método contains ainda está utilizando a definição mais genérica.
Como posso resolver isso?