java.lang.reflect.Parameter in Java 8

Ein Parameter repräsentiert einen Parameter einer Methode oder eines Konstruktors. Zu den neuen Methoden zählen:

final class java.lang.reflect.Parameter

implements AnnotatedElement

§ String getName()

§ int getModifiers()

§ boolean isNamePresent()

§ boolean isImplicit()

§ boolean isSynthetic()

§ boolean isVarArgs()

§ Type getParameterizedType()

§ Executable getDeclaringExecutable()

§ Class<?> getType()

§ AnnotatedType getAnnotatedType()

Die in Java 8 eingeführte finale Klasse Parameter implementiert AnnotatedElement, da seit Java 8 auch Parametervariablen annotiert sein können; die Methoden sind in der oberen Aufzählung nicht noch einmal aufgezählt.

Um an einen Parameter zu gelangen nutzen wir getParameters() auf einem Executable, also konkret Constructor, Method.

abstract class java.lang.reflect.Executable<T>
extends AccessibleObject

implements Member, GenericDeclaration

§ public Parameter[] getParameters()

Falls etwas beim Erfragen schief geht, gibt es eine MalformedParametersException, eine ungeprüfte Ausnahme.

Beispiel:

Constructor<?>[] constructors = Point.class.getDeclaredConstructors();

for ( Constructor<?> constructor : constructors ) {

System.out.println( constructor );

for ( Parameter param : constructor.getParameters() )

System.out.printf( “ %s %s%n“, param.getType(), param.getName() );

}

Mit der Ausgabe (an der abzusehen ist, dass die Parameternamen für die JVM nicht bekannt sind):

public java.awt.Point(int,int)

int arg0

int arg1

public java.awt.Point(java.awt.Point)

class java.awt.Point arg0

public java.awt.Point()

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert