String to method(invoke)抛出异常

时间:2015-02-12 15:54:35

标签: java string invoke

我想调用一个方法,给定一个String。我的意思是,我有一个String,它是我想要调用的方法的名称。

我已经看到反射是满足目标的方法但是,当我尝试获取方法时(在调用它之前),我得到了一个异常。

这就是我所做的:

        Method method = Object.class.getMethod("functionToCall", String.class);

为什么这个命令会抛出异常?为了获得将要调用的方法,我该怎么办?

非常感谢你!

1 个答案:

答案 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");