Os métodos “equals” e “hashCode” nada mais são que a forma pela qual pode-se verificar se um objeto é “o mesmo que” outro.

A definição do método “equals” deve seguir uma implementação adequada que contemple as seguintes operações:

Reflexiva

x.equals(x)

Simétrica

x.equals(y) == y.equals(x)

Transitiva

( x.equals(y) && y.equals(z) ) == x.equals(z)

Consistente

Se x.equals(y) é verdadeiro em algum momento da vida do objeto, então será sempre verdadeiro, desde que x e y não se alterem.

A compreensão plena desses conceitos é útil e surpreendentemente complexa. Um equívoco na implementação de tais métodos podem gerar resultados inesperados durante a execução do seu programa.

Copyright © 2016 AIEC.