Classes Wrappers

Salve, Salve Galera…

Alguém pode me explicar o porque isso é falso:


Integer i = new Integer("17");
Short s = new Short("17");

System.out.println( i.equals(s) );

Atn.
Dennys Fredericci

Olha a implementação do método equals da classe Integer.

public boolean equals(Object obj) { if (obj instanceof Integer) { return value == ((Integer)obj).intValue(); } return false; }

O fato é que para um objeto ser equals ao outro ele deve seguir a premissa básica de ser do mesmo tipo.

Para obter um valor verdadeiro na sua comparação você deve comparar seus valores literais.

:wink: