У меня есть вопрос об отражении
Я пытаюсь иметь какой-то метод eval (). Так что я могу позвонить, например:
eval("test('woohoo')");
Теперь я понимаю, что в Java нет метода eval, но есть отражение. Я сделал следующий код:
String s = "test";
Class cl = Class.forName("Main");
Method method = cl.getMethod(s, String.class);
method.invoke(null, "woohoo");
Это работает отлично (конечно же, есть блок try, catch вокруг этого кода). Он запускает тестовый метод. Однако я хочу вызвать несколько методов, которые имеют разные параметры.
Я не знаю, что это за параметры (не только String.class). Но как это возможно? как
я могу получить типы параметров метода?
Я знаю следующий метод:
Class[] parameterTypes = method.getParameterTypes();
Но это вернет parameterTypes только что выбранного метода! со следующим утверждением:
Method method = cl.getMethod(s, String.class);
Любая помощь будет принята с благодарностью!