我想在java类中搜索一个方法。我有方法名称作为字符串和我正在研究的类的名称

时间:2017-01-28 22:30:21

标签: java methods reflection

class A {
    method x() {
    }

    method y() {
    }
}

class B {
    A a = new A();
    String methodName = "x";
    // I want to execute this statement **a.x();**
}

我知道方法名称,我想自动调用该方法。

1 个答案:

答案 0 :(得分:0)

在您的情况下,只需致电:

a.getClass().getMethod(methodName, null).invoke(a);

记住抛出异常:

NoSuchMethodException
InvocationTargetException
IllegalAccessException

x方法设为公开或仅使用getDeclaredMethod代替getMethod