2

可能重复:
当将方法名称作为字符串给出时,如何调用 Java 方法?

我有 10 个方法名为:m1, m2, m3,...

像这样:

public void m1(){
..
}

如何在“for”循环中使用字符串调用它们?

我想做这个:

for (int i=1;i<11;i++){
   invoke('m'+i);
}
4

3 回答 3

4

你需要使用reflection来实现这一点。

    Method method = getClass().getMethod(methodName);
    method.invoke(this);

因此,您需要将方法名称存储在一个数组中,并使用此代码段来一一调用这些方法。

于 2013-01-24T08:19:23.420 回答
0

你可以用反射来做到这一点。

但是,我会对您的用例感兴趣。通常可以重构应用程序,因此反射的使用是多余的。

于 2013-01-24T08:20:05.307 回答
-1

this在对象上使用 java 反射。

于 2013-01-24T08:18:43.360 回答