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
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.