有一个数组,比如{ 1,2,3,5,8},我有a1(),a2()……a10()的10个方法,怎样执行对应这个数组的方法a1,a2,a3,a5,a8
反正有规律,取到数组中值后不可以了吗
不太明白你要表达的意思
int [] a = new int []{1,2,3,5,8};
for(int i = 0; i< a.length();i++){
int s = a[i];
do(s);
}
void do(int i){
switch(i){
case 1:
a1();
break;
......
}
}
什么意思,确实没看懂
如果a1 a2... a10是类的成员方法,那么可以反射执行。
http://blog.csdn.net/ichsonx/article/details/9108173
只要比拼接出函数名字符串就可以。
只知道数组,反射能找到所在的类和方法吗
函数指针数组,然后对应下标
假如类的名字叫做ATest
Class c = ATest.class;
int [] a = new int []{1,2,3,5,8};
for(int i = 0; i< a.length();i++){
Method method = c.getMethod("a"+a[i]);//这是方法名,没有参数
method.invoke(c.newInstance());//运行方法
}
用反射,根据每个数组元素生成待调用方法的名称,然后用java的反射机制调用对应的方法。