2010-02-21 8 views
3

J'ai appris Java pendant mon temps libre et j'ai une petite question que je n'arrive pas à comprendre. Ce code renvoie true:Boolean instanceof L'objet est true?

Boolean testBool = true; 
Boolean test = testBool instanceof Object; 
System.out.println(test); 

Cependant, je pensais Boolean était un type primitif et quand je tente cette même logique avec tout autre type primitif je reçois une erreur de compilation qui dit: Type inattendu requis: référence trouvée: int

Je suis sûr qu'il y a juste quelque chose de petit qui me manque. Merci de votre aide!

Répondre

3

booléen est un type primitif; java.lang.Boolean est sa classe wrapper.

Vous remarquerez que tous les types primitifs ont des classes wrapper compagnon (par exemple, int et java.lang.Integer, etc.)

4

Boolean avec initiales B une enveloppements en majuscule primitive boolean. Comme the docs dire:

La classe booléenne enveloppe une valeur de la type boolean primitive dans un objet. Un objet de type Boolean contient un champ unique dont le type est booléen.

Autoboxing peut implicitement se déplacer entre ces types encadrés et les primitives correspondantes.