Grundsätzliche Auskunft über die Art des Typs, für den ein Class-Objekt steht, geben die folgenden Prädikate. Die Namen sprechen für sich: boolean isPrimitive()
boolean isArray()
boolean isEnum()
boolean isInterface()
boolean isAnonymousClass()
boolean isLocalClass()
boolean isMemberClass()
Start mit einem Typobjekt
Ausgehend vom Class-Objekt lassen sich damit sukzessive Einzelheiten einer Typdefinition ergründen: - Name und andere Meta-Informationen der Klasse:
- String getName()
- Qualifizierter Name dieses Typs (entsprechend getSimpleName: Name ohne Package-Pfad).
- Package getPackage()
- Package, in dem dieser Typ definiert ist.
- int getModifiers()
- Modifier dieser Typdefinition.
- Kompatibilität zu anderen Typen:
- Class<?>[] getInterfaces()
- Alle Interfaces, die dieser Typ implementiert.
- Class<? super T> getSuperclass()
- Basisklasse oder null, wenn es keine gibt.
- boolean isAssignableFrom(Class<?> type)
- Ist der Typ type zuweisungskompatibel zu diesem Typ?
- boolean isInstance(Object x)
- Ist x von diesem Typ? Dieser Test entspricht dem Vergleich mit instanceof.
- Konstruktoren:
- Constructor<T> getConstructor(Class<?>... types)
- Konstruktor mit den Parametertypen types oder NoSuchMethodException (entsprechend getDeclaredConstructor: Konstruktor laut Quelltext).
- Constructor<T>[] getConstructors()
- Alle öffentlichen Konstruktoren (entsprechend getDeclaredConstructors: alle Konstruktoren laut Quelltext).
- Variablen:
- Field getField(String name)
- Öffentliche Objekt- oder Klassenvariable mit dem Namen name (entsprechend getDeclaredField: Objekt- oder Klassenvariable laut Quelltext).
- Field[] getFields()
- Alle öffentlichen Objekt- und Klassenvariablen (entsprechend getDeclaredFields: alle Objekt- und Klassenvariablen laut Quelltext).
- Methoden:
- Method getMethod(String name, Class<?>... type)
- Öffentliche Methode namens name mit Parametertypen types (entsprechend getDeclaredMethod: Methode laut Quelltext).
- Method[] getMethods()
- Alle öffentlichen Methoden (entsprechend getDeclaredMethods: Methoden laut Quelltext).
Eigenschaften von Arrays und Enums
Speziell bei Array- und Aufzählungstypen sind darüber hinaus interessant: - Class<?> getComponentType()
- Der Elementtyp bei einem Array oder null ansonsten.
- T[] getEnumConstants()
- Elemente bei einem Aufzählungstyp oder null ansonsten.
8.2.1 Modifier 8.2.2 Konstruktoren 8.2.3 Variablen 8.2.4 Methoden 8.2.5 Anwendung: UML-artige Skizze einer Klassendefinition