A função equals foi definida no objeto da classe base. O código-fonte é o seguinte.
Copie o código do código da seguinte forma:
público booleano igual a(Objeto obj) {
retornar (isto == obj);
}
Pode-se ver no código-fonte que o método equals() padrão é consistente com "==". Eles são referências aos objetos que estão sendo comparados, não aos valores dos objetos (isso é consistente com nosso senso comum de que equals() é. usado para comparar objetos. O motivo é que a maioria das classes em Java substituiu o método equals(). A seguir está um exemplo da classe String.
[Java]
Copie o código do código da seguinte forma:
/** O valor é usado para armazenamento de caracteres */.
valor final do caractere privado[];
/** O deslocamento é o primeiro índice do armazenamento usado */.
deslocamento interno final privado;
/** A contagem é o número de caracteres na String */.
contagem interna final privada;
[java] visualizar cópia simples?
public boolean equals(Object anObject) {
if (this == umObjeto) {
retornar verdadeiro;
}
if (uma instância de objeto de String) {
String outraString = (String)anObject;
int n = contagem;
if (n == outraString.count) {
char v1[] = valor;
char v2[] = outraString.value;
int i = deslocamento;
int j = outraString.offset;
enquanto (n--! = 0) {
se (v1[i++] != v2[j++])
retornar falso;
}
retornar verdadeiro;
}
} //www.software8.co
retornar falso;
}
Equals() da classe String é muito simples, apenas converte a classe String em um array de caracteres e compara-o bit a bit.
Em resumo, ao usar o método equals() devemos prestar atenção a:
1. Como equals() é aplicado a um objeto personalizado, você deve substituir o método equals() do sistema na classe personalizada.
2. Um pouco de conhecimento, um grande problema.