Illustration einer tropischen Insel mit Palmen und einem hohen Berg

Java Blog für Programmierer

java.lang.reflect.Parameter in Java 8

· Christian Ullenboom

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()

Kategorien: Insel, Java 8

← Alle Beiträge