按名称调用方法

时间:2013-01-24 08:16:17

标签: java methods

  

可能重复:
  How do I invoke a Java method when given the method name as a string?

我有10个方法:m1m2m3,...

像这样:

public void m1(){
..
}

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

我想这样做:

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

3 个答案:

答案 0 :(得分:4)

您需要使用reflection来实现此目的。

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

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

答案 1 :(得分:0)

您可以使用reflection执行此操作。

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

答案 2 :(得分:-1)

this对象上使用java反射。