Estou com uma dúvida referente a aula 01 da parte de Equals e mais listas. Quando crio a nova conta cc3, mesmo ela não sendo adicionada na lista, o "existe" retorna sempre true. Gostaria de saber o por quê disso? Tem haver com algum erro de código no método equals da classe Conta? Teste Array List Equals:
package br.com.Bytebank.Banco.Teste.Util;
import java.util.ArrayList;
import br.com.Bytebank.Banco.Modelo.Conta;
import br.com.Bytebank.Banco.Modelo.ContaCorrente;
public class TesteArrayListEquals {
public static void main(String[] args) {
//Generics
ArrayList<Conta> lista = new ArrayList<Conta>();
Conta cc = new ContaCorrente(22, 11);
lista.add(cc);
Conta cc2 = new ContaCorrente(22, 22);
lista.add(cc2);
Conta cc3 = new ContaCorrente(22, 22);
boolean existe = lista.contains(cc3);
System.out.println("Já existe? " + existe);
for(Conta conta : lista) {
System.out.println(conta);
}
}
}
Método Equals na classe Conta:
@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;
}