2017-07-28 4 views
0

pouvons-nous changer wrapper pour primitive? Sinon, ce qui se passe dans ce codePouvons-nous changer la classe wrapper en types de données primitifs?

int I = Integer.valueOf(46); 
System.out.println(I); 

Je ne reçois aucune erreur.

+1

Voir: https://docs.oracle.com/javase/tutorial/java/data/autoboxing.html –

+1

Sûrement cela doit avoir été demandé et répondu avant. –

+0

@ T.J.Crowder: Bien que je le soupçonne, au moins dans le contexte d'autres complexités, je ne sais pas comment je trouverais un doublon parmi les milliers d'autres questions relatives au déballage. C'est assez sympa d'avoir une question qui * se focalise * sur ce seul détail, plutôt que de faire partie de l'expression conditionnelle, etc. –

Répondre

1

Oui, on appelle cela unboxing:

Integer boxed = 10; // Boxing 
int unboxed = boxed; // Unboxing 

conversions de boxe sont décrites dans JLS 5.1.7; Les conversions unboxing sont décrites dans JLS 5.1.8.

Notez que si vous essayez de unbox une référence null, un NullPointerException sera lancé:

Integer boxed = null; 
int unboxed = boxed; // NPE