Comment appeler la fonction Java à partir chaîne stockée dans une variable [double]
-
27-09-2019 - |
Question
Possible en double: appel d'une méthode appelée « chaîne » lors de l'exécution dans Java et C
Je dois être en mesure d'appeler une fonction, mais le nom de la fonction est stockée dans une variable, est-ce possible. par exemple:
public void foo ()
{
//code here
}
public void bar ()
{
//code here
}
String functionName = "foo";
// i besoin d'appeler la fonction en fonction de ce qui est functionName
Anyhelp serait génial, merci
La solution
Oui, vous pouvez, en utilisant la réflexion. Cependant, pensez aussi Effective Java 2e édition, article 53: Préférez les interfaces à la réflexion . Si possible, utilisez des interfaces à la place. La réflexion est rarement vraiment nécessaire dans le code d'application générale.
Voir aussi
Questions connexes
Autres conseils
fait facilement avec la réflexion. Quelques exemples et ici .
Les principaux bits étant le code
String aMethod = "myMethod";
Object iClass = thisClass.newInstance();
// get the method
Method thisMethod = thisClass.getDeclaredMethod(aMethod, params);
// call the method
thisMethod.invoke(iClass, paramsObj);
Utilisez la réflexion.
Voici un exemple
Avec la réflexion API . Quelque chose comme ceci:
Method method = getClass().getDeclaredMethod(functionName);
method.invoke(this);