Lançando um INT primitivo para um número
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!
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