Frage

  

Mögliche Duplizieren:
   Aufruf einer Methode namens „string“ zur Laufzeit in Java und C

Ich muss in der Lage sein, eine Funktion aufzurufen, aber der Name der Funktion wird in einer Variablen gespeichert, das möglich ist. z:

public void foo ()
{
     //code here
}

public void bar ()
{
     //code here
}

String functionName = "foo";

// Ich muss die Funktion aufzurufen, auf das, was ist functionName-

Anyhelp wäre toll, danke

War es hilfreich?

Lösung

Ja, Sie können, mit Reflexion. Allerdings betrachten auch Effective Java 2nd Edition, Punkt 53: Bevorzugen Schnittstellen Reflexion . Wenn möglich, verwenden Sie stattdessen Schnittstellen. Reflexion ist nur selten wirklich benötigt im allgemeinen Anwendungscode.

Siehe auch

Verwandte Fragen

Andere Tipps

Sie leicht mit Reflexion gemacht. Einige Beispiele hier und hier .

Die wichtigsten Bits des Codes Sein

String aMethod = "myMethod";

Object iClass = thisClass.newInstance();
// get the method
Method thisMethod = thisClass.getDeclaredMethod(aMethod, params);
// call the method
thisMethod.invoke(iClass, paramsObj);

Mit Reflexion.

Hier ist ein Beispiel

Mit der Reflexion API. So etwas wie folgt aus:

    Method method = getClass().getDeclaredMethod(functionName);
    method.invoke(this);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top