aneira correta de implementar contrato igual [duplicado]
Esta pergunta já tem uma resposta aqui:
Quais problemas devem ser considerados ao substituir iguais e hashCode em Jav 11 respostasTenho um objeto de domínio chamadoDo utilizado. As propriedades do usuário incluem ssoId, nome, email, createdBy, createdDate e userRole. Destes,ssoId deve ser único no sentido de que dois usuários não podem ter o mesmo ID de SSO. Portanto, meu método equals verifica o ID do Sso e retorna verdadeiro ou fals
@Override public boolean equals(Object o) {
if (!(o instanceof User))
return false;
return user.getSsoId().equals((User)o.getSsoId());
}
O que eu sinto é que esta é uma implementação incorreta, embora esteja correta no que diz respeito às regras de negócios. A implementação acima retornará true para dois objetos com o mesmo ID de SSO, mas com valores diferentes para, por exemplo, nome, email ou ambos. Devo alterar meu contrato de iguais para verificar a igualdade de todos os campos? Qual é a sua sugestão