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!

È stato utile?

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
scroll top