使用名称模式调用方法

时间:2011-11-09 21:02:32

标签: java syntax

我需要调用一些libs生成的一些函数。我需要逐个致电fucntion1function2,...,function10。而不是将它们全部写在代码上,是否有任何聪明的方法来编码它?

2 个答案:

答案 0 :(得分:7)

可以使用reflection

Some some = new Some();

for (int i = 1; i <= 10; i++) {
    some.getClass().getMethod("function" + i).invoke(some);
}

答案 1 :(得分:1)

您也可以使用java.beans包中的Expression类

http://download.oracle.com/javase/6/docs/api/index.html?java/beans/package-summary.html

构造一个表达式对象。

Expression(Object target,String methodName,Object[] arguments)

然后在表达式对象上,您可以使用getValue()

干杯!