我想调用一个方法,给定一个String。我的意思是,我有一个String,它是我想要调用的方法的名称。
我已经看到反射是满足目标的方法但是,当我尝试获取方法时(在调用它之前),我得到了一个异常。
这就是我所做的:
Method method = Object.class.getMethod("functionToCall", String.class);
为什么这个命令会抛出异常?为了获得将要调用的方法,我该怎么办?
非常感谢你!
答案 0 :(得分:1)
您在示例中尝试的是获取functionToCall
方法,该方法从String
类获取java.lang.Object
参数。它不会发生。
但是,您可以使用getMethod()
和invoke()
组合,如下所示:
要使用的课程:
public class MyClass {
public void myMethod(final String pString) {
System.out.println("Hello "+pString);
}
}
并实际调用方法
// We get the method myMethod which takes a String.
Method method = MyClass.class.getMethod("myMethod", String.class);
// We call it on a new MyClass instance with "Test" as parameter.
method.invoke(new MyClass(), "Test");