Java Reference
In-Depth Information
als ein Objekt der entsprechenden Wrapper-Klasse (für int z. B. ein Integer-Objekt) überge-
ben werden. Der Rückgabetyp ist im Allgemeinen ebenfalls Object. Falls das Method-Objekt
zu einer Void-Methode gehört, ist der Rückgabewert immer null.
Bezüglich der Sichtbarkeitsüberprüfung und setAccessible gilt dasselbe wie bei der Klasse
Field. Auch getModifi ers entspricht der Methode desselben Namens der Klasse Field.
2.1.4 Die Klasse Constructor
Ganz analog zu den Attributen und Methoden kann man von einem Class-Objekt die Kons-
truktoren über die Methoden getConstructor, getDeclaredConstructor, getConstructors und
getDeclaredConstructors erfragen. Rückgabetyp ist Constructor bzw. Constructor[]. Einige
Besonderheiten der Konstruktoren spiegeln sich in der Refl ection-Schnittstelle wider: Da
alle Konstruktoren denselben Namen haben, muss bei den Singularvarianten getConstruc-
tor und getDeclaredConstructor kein Name, sondern es müssen nur die Typen der Parame-
ter angegeben werden. Aufgrund der Tatsache, dass Konstruktoren nicht vererbt werden, ist
der Unterschied zwischen den Methoden mit und ohne „Declared“ im Namen geringer als
für Attribute und Methoden; es geht immer nur um Konstruktoren dieser Klasse: Die Metho-
den getDeclaredConstructor und getDeclaredConstructors beziehen sich auf alle Konstruk-
toren der Klasse, die Methoden getConstructor und getConstructors nur auf die öff entlichen
Konstruktoren der Klasse.
Die Klasse Konstruktor ist eine generische Klasse. Der Typparameter entspricht der Klasse,
um deren Konstruktor es geht. Wichtige Methoden der Klasse Constructor<T> sind:
public Class<?>[] getParameterTypes();
public Class<?>[] getExceptionTypes();
public T newInstance(Object... initArgs)
throws InstantiationException, IllegalAccessException,
IllegalArgumentException, InvocationTargetException;
public void setAccessible(boolean flag) throws SecurityException;
public int getModifiers();
Die Methode newInstance entspricht der Methode invoke der Klasse Method. Ein Unter-
schied besteht darin, dass es kein Objekt gibt, auf das der Konstruktor angewendet wird.
Folglich sind die Parameter von newInstance nur die entsprechenden Konstruktorparame-
ter. Ferner ist der Rückgabetyp nicht der allgemeine Typ Object, sondern T, der Typparame-
ter der Klasse Constructor. Alle anderen Methoden sollten aufgrund der Erläuterungen zur
Klasse Method selbsterklärend sein.
Falls eine Klasse einen parameterlosen Konstruktor besitzt und man ein Objekt mit Hilfe
dieses Konstruktors erzeugen möchte, muss man übrigens die Klasse Constructor nicht
notwendigerweise verwenden. In diesem Fall kann man auch die parameterlose Methode
newInstance der Klasse Class benutzen. Auch diese Methode hat als Rückgabetyp den Typ-
parameter T.
 
Search WWH ::




Custom Search