Erstellen eine Arraylist von Methoden und Verfahren der Ausführung mit dem gleichen Namen-Zeichenfolge Eingang

stimmen
-1

Wie erstellen Sie eine Liste aller Methoden in einer Klasse. Dann diese Liste suchen, einen String-Eingang für die Methode mit dem gleichen Namen verwenden und diese Methode ausführen?

Veröffentlicht am 09/10/2019 um 18:55
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0

Dies ist nur, wie Funktion zur Laufzeit aufzurufen

Sie können verwenden, was für Java Reflection Aufrufe von Methoden zur Laufzeit aufgerufen wird.

Nehmen wir ein Beispiel dieser Klasse:

public class Operations {
    public double sum(int a, double b) {
        return a + b;
    }

    public static double multiply(float a, long b) {
        return a * b;
    }
}

Zuerst müssen wir eine Methode Objekt erhalten, das die Methode , die wir aufrufen wollen widerspiegelt. Ok, jetzt brauchen wir getDeclaredMethod Funktion. Dafür benötigen wir ein Objekt erstellen Methode Klasse. Wir können diese getDeclaredMethod Funktion beliebige nennen öffentlichen, privaten, geschützten Verfahren . Dabei spielt es keine Rolle , ob die Methode statisch ist oder nicht.

Method sumMethod= Operations.class.getDeclaredMethod("sum", int.class, double.class);

Beachten Sie eine Sache, dass int.class & double.class realisiert die Parameter , die in der gegebenen Funktion.

Nun wird das Verfahren zum Aufrufen, verwenden Sie .invoke()Funktion.

double value = sumMethod.invoke(null, 1,2.5);

Beachten Sie, dass ich bestanden haben null als erstes Argument, das ist, weil ich eine statische Methode nenne. Wenn Sie eine Instanz-Methode aufrufen müssen, müssen Sie das Objekt anstelle von null zu übergeben.

Ich hoffe es hilft! Für weitere Informationen: https://www.baeldung.com/java-method-reflection

Beantwortet am 09/10/2019 um 19:12
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more