Casting un int primitivo a un numero
Domanda
Diciamo che ho il seguente:
int a = 2;
Number b = (Number) a;
System.out.println(b); // Prints 2
http: //java.sun .com / docs / libri / JLS / first_edition / html / 15.doc.html # 238146 dice che un valore di base non può essere lanciato ad un tipo di riferimento. Fa Java sapere per creare un numero intero da int primitivo e poi gettato alla superclasse? Come funziona esattamente Java gestire questo dietro le quinte? Grazie!
Soluzione
Il processo è chiamato autoboxing . In breve, il compilatore vede che è necessario un involucro (Integer
) piuttosto che una primitiva (int
) e aggiunge automaticamente la conversione. E in realtà il cast per Number
non è necessaria.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow