Come chiamare la funzione Java da stringa memorizzata in una variabile [duplicato]
-
27-09-2019 - |
Domanda
Eventuali duplicati:
Chiamare un metodo denominato “stringa” in fase di esecuzione in Java e C
ho bisogno di essere in grado di chiamare una funzione, ma il nome della funzione viene memorizzato in una variabile, è possibile tutto ciò. per esempio:
public void foo ()
{
//code here
}
public void bar ()
{
//code here
}
String functionName = "foo";
// bisogno ho di chiamare la funzione in base a ciò che è functionName
Anyhelp sarebbe grande, grazie
Soluzione
Sì, è possibile, utilizzando la riflessione. Tuttavia, in considerazione anche Effective Java 2nd Edition, Articolo 53: Preferisco interfacce di riflessione . Se possibile, utilizzare le interfacce. Riflessione è raramente veramente necessario nel codice dell'applicazione generale.
Vedi anche
Domande correlate
Altri suggerimenti
Fatto facilmente con la riflessione. Alcuni esempi qui e qui .
I principali bit dell'essere codice
String aMethod = "myMethod";
Object iClass = thisClass.newInstance();
// get the method
Method thisMethod = thisClass.getDeclaredMethod(aMethod, params);
// call the method
thisMethod.invoke(iClass, paramsObj);
L'uso di riflessione.
Ecco un esempio
Con il riflessione API . Qualcosa di simile a questo:
Method method = getClass().getDeclaredMethod(functionName);
method.invoke(this);