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
x
ey
, 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) --> true
então x.equals(z) --> true
- É consistente : para qualquer valor não nulo de referência
x
ey
, várias invocações de x.equals(y) consistentemente retornartrue
ou 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) ou
x.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