Parâmetro Object

Olá!
Implementei uma class Lista que possui o seguinte método:

  public void inserirNoInicio(Object elemento) {
    Nodo nodo = new Nodo(elemento, null, primeiro);
    if (estaVazia()) 
      ultimo = nodo;
    else
      primeiro.setAnterior( nodo );
    primeiro = nodo;
    tamanho++;
  }

Não há nada de errado com o método. O que está me incomodando é que o parâmetro deste método é um Object logo não poderia aceitar um valor primitivo como: 1, 2.4, true e etc…
Por exemplo o código abaixo funciona:

Lista l = new Lista();
l.inserirNoInicio( 2 );

Então eu observei que equele valor primitivo “2” é convertido para um objeto do tipo Integer. Cheguei a essa conclusão com o código abaixo:

Integer i = (Integer)l.elementoEm(0); //elementoEm me devolve o objeto no índice especificado no parâmetro

A questão toda é. Se este último código funciona por qual motido o código abaixo não funciona?

Object o = 2;

2 é int, e int é primitivo, utilize a classe Integer
(Entendendo que Objetos só aceitam objetos (classes))
Exemplo:

Object o = new Integer(2); System.out.println(o); //-> a saida será 2

abç

Object o = 2;

Esse código pega sim.

olá!

no java 1.5 foram inseridos os recursos de autoboxing e unboxing então um código como esse:

Integer i = 1; // automaticamente o literal foi "empacotado" (autoboxing)

funciona perfeitamente… o contrário também funciona por sinal:

Integer i = new Integer(1);
System.out.println(i + 2); // saída 3 - automaticamente o objeto foi
                                      // "desempacotado" (unboxing)

abraços

Eduardo

off - topic ( mas faz um tempo que quero saber )

como vc colocou essas imagens ai na sua assinatura ?

(re: off topic) tem um site que tem um monte dessas imagens dai você escolhe as que você quer, clica num botão no final da página e ele junta todas… mas o problema é que tem uma propaganda deles, dai eu peguei as imagens, editei no fireworks e hospedei no cjb.net

o site: http://www.publicons.de/

abraços

valeu !!