Ola pessoal!
Conforme solicitado hoje vou falar um pouco sobre o método equals do java.
Bom vamos ao que interessa.
O nome do método já diz tudo equals do inglês "igual", significa que serve para igualar ou comparar objetos, da especificação do java "Indica se algum outro objeto é "igual a" um presente." ou seja comparação entre objetos em memoria.
Existe varios pontos que devemos elencar:
Conforme solicitado hoje vou falar um pouco sobre o método equals do java.
Bom vamos ao que interessa.
O nome do método já diz tudo equals do inglês "igual", significa que serve para igualar ou comparar objetos, da especificação do java "Indica se algum outro objeto é "igual a" um presente." ou seja comparação entre objetos em memoria.
Existe varios pontos que devemos elencar:
O método equals implementa uma relação de equivalência em referências a objetos não nulos:
- É reflexivo : para qualquer valor não nulo de referência
x, deve retornartrue. - Exemplos: x.equals(x) --> true
- É simétrico : para qualquer valor não nulo de referência
xey, deve retornartrue. - Exemplo:
- x.equals(y) --> true
y.equals(x)--> true
- É transitivo : para quaisquer valores não nulos de referência
x,y, ez. - Exemplo:
- se
x.equals(y) --> true e y.equals(z) --> trueentão x.equals(z) --> true
- É consistente : para qualquer valor não nulo de referência
xey, várias invocações de x.equals(y) consistentemente retornartrueou retornar semprefalse, desde que nenhuma informação usada em equals comparações sobre os objetos seja modificado.
- Para qualquer valor não nulo de referência
x, retornarfalse. - Exemplo:
-
x.equals(null) oux.equals(objeto nulo) --> false
O método equals para a classe
Object implementa a mais exigente possível relação de equivalência em objetos, ou seja, para qualquer valor não nulo de referência x e y , este método retorna true se e somente se x e y se referem ao mesmo objeto ( x == y tem o valor true ).
Obs: note-se que geralmente é necessário sobrescrever também o método hashCode sempre que o método equals é sobrescrito, de modo a manter o contrato geral para o método hashCode , que afirma que os objectos iguais deve ter códigos de hash iguais, assunto para um proximo post.
Exemplos de codigos:
1
2
3
4
5
6
7
8
9
10
| public boolean equals(Object obj) { if (this == obj) return true; if (!super.equals(obj)) return false; if (getClass() != obj.getClass()) return false; ...} |
Nenhum comentário:
Postar um comentário