Jetant un int primitif à un numéro
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!
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