Heim > Java > javaLernprogramm > Wie kann ich Methodenparameternamen mithilfe von Java Reflection abrufen?

Wie kann ich Methodenparameternamen mithilfe von Java Reflection abrufen?

Susan Sarandon
Freigeben: 2024-11-08 19:52:02
Original
853 Leute haben es durchsucht

How Can I Retrieve Method Parameter Names Using Java Reflection?

Kann ich Methodenparameternamen mithilfe von Java Reflection erhalten?

In Java vor Version 8 war das Abrufen von Methodenparameternamen nicht direkt durch Reflektion möglich. Mit der Einführung der Java Reflection API in Version 8 wurde diese Funktion jedoch eingeführt.

Parameternamen in Java 8 abrufen

Um die Namen von Methodenparametern mithilfe von Java 8 Reflection abzurufen, müssen Sie kann den folgenden Ansatz verwenden:

  1. Erhalten Sie das Methodenobjekt der betreffenden Methode mithilfe von Reflektion (Method.getMethod() oder Class.getDeclaredMethod()).
  2. Verwenden Sie die Methode getParameters() des Methodenobjekts, um ein Array von Parameterobjekten abzurufen.
  3. Überprüfen Sie, ob die Parameternamen verfügbar sind, indem Sie isNamePresent() aufrufen jedes Parameterobjekt. Andernfalls können Sie die Parameternamen nicht abrufen.
  4. Rufen Sie die Parameternamen ab, indem Sie getName() für die Parameterobjekte aufrufen.

Codebeispiel

Der folgende Code demonstriert, wie Methodenparameternamen in Java 8 abgerufen werden:

import java.lang.reflect.Method;
import java.lang.reflect.Parameter;

public class MethodParameterNames {

    public static void main(String[] args) {
        try {
            // Get the class object
            Class<?> clazz = Class.forName("Whatever");

            // Get the method object
            Method method = clazz.getMethod("aMethod", int.class);

            // Get the parameter array
            Parameter[] parameters = method.getParameters();

            // Extract and print the parameter names
            for (Parameter parameter : parameters) {
                System.out.println(parameter.getName());
            }
        } catch (ClassNotFoundException | NoSuchMethodException e) {
            e.printStackTrace();
        }
    }
}
Nach dem Login kopieren

Zusätzlich Informationen

  • Damit das obige Codebeispiel funktioniert, müssen Sie Ihren Code mit dem Compiler-Argument -parameters kompilieren, um die Beibehaltung von Parameternamen zu aktivieren.
  • Die Möglichkeit, Parameternamen zu erhalten, ist a Relativ neue Funktion, daher wird sie möglicherweise nicht in allen Java-Umgebungen unterstützt. Bitte überprüfen Sie die Kompatibilität Ihrer Java-Version.
  • Ausführliche Dokumentation finden Sie in den folgenden Ressourcen:

    • [Java-Tutorial: Methodennamen ermitteln Parameter](https://docs.oracle.com/javase/tutorial/reflect/methodparameterreflection.html#obtainingnames)
    • [Javadoc für Parameterklasse](https://docs.oracle.com/javase/ 8/docs/api/java/lang/reflect/Parameter.html)

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

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage