boolean.class?

7

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: \

    
Dave 19.06.2009, 17:48
quelle

5 Antworten

9

Nicht integer.class aber int.class . Ja, du kannst. JRE 6:

%Vor%

Ausgaben

%Vor%     
glmxndr 19.06.2009, 17:57
quelle
6

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.

    
Tom Hawtin - tackline 19.06.2009 17:52
quelle
3

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.

    
Bill the Lizard 19.06.2009 17:54
quelle
3

Nun kannst du sowas wie int.class auch machen

%Vor%

Das Schlüsselwort .class wurde mit Java 1.1 eingeführt, um eine konsistente Methode zum Abrufen des Klassenobjekts für Klassentypen und primitive Datentypen zu erhalten.

Klasse: Java-Glossar

    
jitter 19.06.2009 17:53
quelle
0

Vielleicht eine dumme Fortsetzung, aber warum ist es möglich, boolean.class der Klasse & lt; Boolean & gt; zuzuordnen, obwohl hashCodes anders sind?

%Vor%     
bedla.czech 08.12.2010 20:34
quelle

Tags und Links