Question

Disons que je suit:

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

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

http: //java.sun .com / docs / livres / JLS / first_edition / html / 15.doc.html # 238146 indique qu'une valeur primitive ne peut pas être jeté à un type de référence. Est-ce que Java sait créer un nombre entier de l'int primitif, puis jeté à la superclasse? Comment fonctionne exactement Java le dans les coulisses? Merci!

Était-ce utile?

La solution

Le processus est appelé autoboxing . En bref, le compilateur voit qu'une enveloppe (Integer) plutôt que d'une primitive (int) est nécessaire et ajoute automatiquement la conversion. Et en fait votre casting à Number n'est pas nécessaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top