Je me pose une question sur la réflexion J'essaie d'avoir une sorte de méthode eval(). Ainsi, je peux appeler par exemple:
eval("test('woohoo')");
Maintenant, je comprends qu'il n'y a pas de méthode eval en java mais il y a la réflexion. J'ai écrit le code suivant:
String s = "test";
Class cl = Class.forName("Main");
Method method = cl.getMethod(s, String.class);
method.invoke(null, "woohoo");
Cela fonctionne parfaitement (bien sûr, il y a un bloc try, catch autour de ce code). Il exécute la méthode test. Cependant, je veux appeler plusieurs méthodes qui ont toutes des paramètres différents.
Je ne sais pas quels sont ces paramètres (donc pas seulement String.class). Mais comment est-ce possible ? Comment puis-je obtenir les types de paramètres d'une méthode ? Je connais la méthode suivante:
Class[] parameterTypes = method.getParameterTypes();
Mais cela renverra les types de paramètres de la méthode que je viens de sélectionner! avec l'instruction suivante:
Method method = cl.getMethod(s, String.class);
Toute aide serait appréciée !