2 sinat 33415638 sinat_33415638 于 2016.02.16 16:35 提问

有一个数组,比如{ 1,2,3,5,8},我有a1(),a2()到a10()的10个方法

有一个数组,比如{ 1,2,3,5,8},我有a1(),a2()……a10()的10个方法,怎样执行对应这个数组的方法a1,a2,a3,a5,a8

9个回答

caozhy
caozhy   Ds   Rxr 2016.02.16 22:50

如果a1 a2... a10是类的成员方法,那么可以反射执行。

http://blog.csdn.net/ichsonx/article/details/9108173
只要比拼接出函数名字符串就可以。

qq_18748427
qq_18748427   2016.02.17 17:02

假如类的名字叫做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());//运行方法
}

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.02.29 21:48

用反射,根据每个数组元素生成待调用方法的名称,然后用java的反射机制调用对应的方法。

diaoliwei2
diaoliwei2   Rxr 2016.02.16 16:45

反正有规律,取到数组中值后不可以了吗

sinat_33415638
sinat_33415638 就是我有10个方法分别叫做a1,a2...a10,用户根据需要调用其中的几个方法,输入了这样的数组{1,2,3,5,8},对应调用的10个方法
接近 2 年之前 回复
lxk_1993
lxk_1993   Rxr 2016.02.16 16:50

不太明白你要表达的意思

sinat_33415638
sinat_33415638 就是我有10个方法分别叫做a1,a2...a10,用户根据需要调用其中的几个方法,输入了这样的数组{1,2,3,5,8},对应调用的的10个方法
接近 2 年之前 回复
lxk_1993
lxk_1993   Rxr 2016.02.16 17:15

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;
......
}
}

Mr_dsw
Mr_dsw   Ds   Rxr 2016.02.16 21:45

什么意思,确实没看懂

Royal_lr
Royal_lr   Ds   Rxr 2016.02.17 11:17

只知道数组,反射能找到所在的类和方法吗

q3733353520
q3733353520   2016.02.17 16:13

函数指针数组,然后对应下标

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
堆的数据结构能够使得堆顶总是维持最大(对于大根堆)或最小(对于小根堆),给定一个数组,对这个数组进行建堆,则平均复杂度是多少?如果只是用堆的 push 操作,则一个大根堆依次输入 3,7,2,4,1,5,8 后,得到的堆的结构示意图是下述图表中的哪个?
快速判断一个数能否被1、2、3、4、5、6、7、8、9、10、11、12、13、17、19、23等整除的规律总结
冒泡排序本质:N个数,需要N-1趟,每趟需要比较N-i次(i是指第i趟)如10个数需要比较9+8+7+6+5+4+3+2+1=45次
计算机组成原理十套练习-白中英(B1 B2 B3 B4 B5 B6 B7B8 B9 B10)
快速判断一个数能否被1、2、3、4、5、6、7、8、9、10、11、12、13、17、19、23等整除的规律总结
89C51的简单实例,详细有说明,适合入门,通过PROTUES的仿真1.闪烁灯2.模拟开关灯3.多路开关状态指示4. 广告灯的左移右移5.广告灯(利用取表方式)6.报警产生器7. I-O并行口直接驱动LED显示8.按键识别方法之9.一键多功能按键识别技术10. 00-99计数器
乐视面试题一个数组,找出数组中没有出现的最小的一个数字,比如[1,2,0],返回3,[1,2,4,5]返回3
IDEFixPak6.0 (2009,2010,XE,XE1,XE2,XE3,XE4,XE5,XE6,XE7,XE8,10,10.1,10.2 )
计算机组成原理十套练习-白中英(B1 B2 B3 B4 B5 B6 B7B8 B9 B10)
给定一个10位的整数组成的串,形式如: d1d2d3d4d5d6d7d8d9d10 。 其中最后的一位(即 )是校验和,其使用以下运算规则以前面的9位上的整数作为参数获得结果