Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

O que quer dizer a linha "if (this == obj) return true;" no método equals()?

Achei que o "==" só comparasse as referências e não o objeto.

2 respostas
solução!

Sim! o == só compara referências. Mas nesse caso é considerado uma boa prática apenas por ser uma otimização.

Imagine o seguinte:

Integer x = new Integer(5);
x.equals(x);

Essa invocação de equals vai retornar muito rapidamente, pois esse if interno vai perceber que o objeto que está sendo comparado é ele mesmo! Então nem precisa comparar os atributos desejados! Quando eles se referenciam par ao mesmo objeto, podemos dizer de cara que são equals!

Acho que entendi. Rsrsrs.