quarta-feira, 4 de agosto de 2010

Questão 16 - Comparação de objetos

O que acontece ao tentar compilar e executar o seguinte código?
public class TestEqual
{
  public static void main(String args[])
  {
    Integer i = new Integer(7);
    Long l = new Long(7);
    System.out.println(l.equals(i));
  }
}

A. imprimirá - true
B. imprimirá - false
C. erro de compilação


O código imprimirá false. Para qualquer classe Wrapper padrão, x.equals(y) sempre retorna false se x e y são objetos de classes diferentes. Isso acontece até mesmo para o exemplo da questão, em que ambos os objetos carregam o mesmo valor (o inteiro 7).
Alternativa correta: B.

Um comentário: