No livro de preparação para a certificação SCJP 6 da Kathy Sierra e do Bert Bates, eles dizem que o equals deve comparar o mínimo de atributos possível, para que se possa identificar se um objeto é igual ao outro.
Se somente pelo id você tem certeza de que pode dizer se um objeto é igual ao outro, então compare somente por ele mesmo.
S
Sem_Nome
Maiconfz:
Gostaria de saber a lógica de comparação que vocês usam no método equals.
Todos os meus objetos possuem um ID que é único, então estou pensando em comparar só por isso.
O que vocês acham?
public Boolean equals(Object b){
/*comparações de == e instanceOf*/
return this.id.equals(b.getId());
}
Bom, eu geralmente faço assim. Mas isso porque eu (quase) sempre trabalho com listas.
lele_vader
No livro do effective java tem um exemplo de implementação de equals. E sempre que se implementar equals deve-se implementar hashcode também.