A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 禾呈 中级黑马   /  2013-7-18 15:51  /  1273 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 禾呈 于 2013-7-18 17:47 编辑

如何用反射获取一个类中的方法,并执行它,这个方法的参数是 数组,或者集合


Method method1=cls.getMethod("方法名",参数类型);//如果此方法的参数是数组,那么参数类型应该填写啥
        
method1.invoke(对象,参数);//如果获取此方法,此处传递参数的时候又该传递啥?
        




评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

4 个回复

倒序浏览
类型参数都是字节码,就是 对象名.class
回复 使用道具 举报
传的参数示例
Method method1=cls.getMethod("方法名",参数类型);//如果此方法的参数是数组,那么参数类型可以是Object[].class 或int[].class
        
method1.invoke(对象,参数);//如果获取此方法,此处传递参数的可以是   new Object[] { new String[] {"aaaaaaaa", "ccc" } } 或m.invoke(Demo1.class.newInstance(), (Object) new String[] { "aaaaaaaa","ccc" });

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
梦想蓝色天空 发表于 2013-7-18 17:42
传的参数示例
Method method1=cls.getMethod("方法名",参数类型);//如果此方法的参数是数组,那么参数类型 ...

试了一下  成功了
回复 使用道具 举报
crazy_primitive 发表于 2013-7-18 16:54
类型参数都是字节码,就是 对象名.class

貌似是,,对象.getclass()吧。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马