Pergunta

Digamos que eu tenho o seguinte:

int a = 2;
Number b = (Number) a;

System.out.println(b); // Prints 2

http://java.sun.com/docs/books/jls/first_edition/html/15.doc.html#238146 diz que um valor primitivo não pode ser lançado em um tipo de referência. Java sabe criar um número inteiro a partir do Int primitivo e depois lançado para a superclasse? Como exatamente o Java lida com isso nos bastidores? Obrigado!

Foi útil?

Solução

O processo é chamado AutoBoxing. Em suma, o compilador vê que um invólucro (Integer) em vez de um primitivo (int) é necessário e adiciona automaticamente a conversão. E na verdade seu elenco para Number não é necessário.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top