Heim >Java >javaLernprogramm >Kann Java Reflection Methodenparameternamen abrufen?

Kann Java Reflection Methodenparameternamen abrufen?

Barbara Streisand
Barbara StreisandOriginal
2024-11-10 06:00:03956Durchsuche

Can Java Reflection Retrieve Method Parameter Names?

Java Reflection: Zugriff auf Methodenparameternamen

Frage:

Kann Java Reflection Informationen über Methodenparameternamen bereitstellen?

Antwort:

Ja, Java 8 führt die Möglichkeit ein, Methodenparameternamen mithilfe von Reflektion zu erhalten.

Implementierung:

import java.lang.reflect.Method;
import java.lang.reflect.Parameter;
import java.util.ArrayList;
import java.util.List;

public class ParameterNames {

    public static List<String> getParameterNames(Method method) {
        if (!method.isParameterNamesPresent()) {
            throw new IllegalArgumentException("Parameter names are not present!");
        }

        Parameter[] parameters = method.getParameters();
        List<String> parameterNames = new ArrayList<>();

        for (Parameter parameter : parameters) {
            parameterNames.add(parameter.getName());
        }

        return parameterNames;
    }

    // For testing
    public static void main(String[] args) throws Exception {
        Method getParameterNamesMethod = ParameterNames.class.getMethod("getParameterNames", Method.class);
        List<String> parameterNames = getParameterNames(getParameterNamesMethod);
        System.out.println("Method parameter names: " + parameterNames);
    }
}

Verwendung:

Für eine Methode namens aMethod mit einem einzelnen Parameter namens aParam gibt die getParameterNames-Methode ["aParam"] zurück.

Zusätzliche Informationen:

  • Das Kompilieren mit dem Flag -parameters oder das Setzen des Parameterscompiler-Arguments auf true im Maven-Compiler-Plugin ist erforderlich, um Parameternamen in der Klassendatei zu generieren.
  • Das Java 8-Veröffentlichungsdokument „Obtaining Names of Method Parameters“ im offiziellen Java-Tutorial enthält weitere Details zu dieser Funktion.

Das obige ist der detaillierte Inhalt vonKann Java Reflection Methodenparameternamen abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn