Ich habe neulich bemerkt, dass ich boolean.class, aber nicht integer.class (oder andere Primitive) aufrufen kann. Was macht Boolean so besonders?
Hinweis: Ich spreche von boolean.class, nicht Boolean.class (was sinnvoll wäre).
Duh: Ich habe versucht integer.class, nicht int.class. Fühle mich nicht dumm: \
Sie können int.class
ausführen. Es gibt dasselbe wie Integer.TYPE
.
int.class.isPrimitive()
, boolean.class.isPrimitive()
, void.class.isPrimitive()
usw. geben einen Wert von true
an. Integer.class.isPrimitive()
, Boolean.class.isPrimitive()
usw. geben den Wert false
an.
boolean ist nicht speziell. Sie können
anrufen %Vor%zum Beispiel. Alle primitiven Typen haben dieses Literal. Aus Suns Tutorial :
Schließlich gibt es noch eine spezielle Art von Literal namens Klassenliteral, das gebildet wird, indem man einen Typnamen nimmt und ".class" anhängt; zum Beispiel String.class. Dies bezieht sich auf das Objekt (vom Typ Klasse), das den Typ selbst darstellt.
Vielleicht eine dumme Fortsetzung, aber warum ist es möglich, boolean.class der Klasse & lt; Boolean & gt; zuzuordnen, obwohl hashCodes anders sind?
%Vor%Tags und Links java