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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 翟友伟 黑马帝   /  2012-3-29 16:45  /  2017 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看视频 有这个 代码。。在加在反射里头的
例如
.getMethod("add",1) .invoke(参数1,参数2)
张孝详 基础加强视频中  没有对invoke方法功能说明下。。
哪个帮忙说下 invoke()的含义

5 个回复

倒序浏览
invoke(Object obj, Object... args)
          对带有指定参数的指定对象调用由此 Method 对象表示的底层方法。
第一个参数是要调用方法的对象,args是参数列表。为什么不下载一个java api网上有很多资源。
回复 使用道具 举报
调用由此 Method 对象表示的底层方法。。。
关键是    帮助文档
看了 后 还是不懂。、。。
此 Method 对象底层方法。。----------------还是不懂啊
能不能 说的通俗点
回复 使用道具 举报
dangfei 发表于 2012-3-29 16:58
invoke(Object obj, Object... args)
          对带有指定参数的指定对象调用由此 Method 对象表示的底层 ...

调用由此 Method 对象表示的底层方法。。。
关键是    帮助文档
看了 后 还是不懂。、。。
此 Method 对象底层方法。。----------------还是不懂啊
能不能 说的通俗点
回复 使用道具 举报
这么说吧,假设对象 A 有一个 b(String s ,int a)方法,
现在我们已经通过反射得到了这个方法 Method mt,即 mt 是b的方法反射,现在我们有通过
mt调用 A 的 b方法: mt.(A,"zhang",30)
首先指定 A ,说明我们在 对象 A 上调用方法,“zhang"和30 则是所需参数。不知这样说lz明白不....
回复 使用道具 举报
本帖最后由 和心愿 于 2012-3-29 19:51 编辑

第一步:Method   getMethod(String name, Class<?>... parameterTypes) (得到的是public方法)
这里String name指的是要得到的那个方法的方法名,Class<?>... parameterTypes是以可变参数的形式来写的,这个参数类型是Class,也就是说如果方法是无参数的就只需要方法名了,有一个的话就传它的Class,两个以及以上的话用逗号隔开,(当然是可以用一个Class[]的);
第二步:
Object invoke(Object obj, Object... args)     通过第一步得到的Method对象来调用该方法,第一个参数Object obj指的是实际调用方法的对象,Object... args指i的是该方法的参数(也是可变参数形式的就不多说了);
值得注意的是invoke方法返回值是Object类型的,如果需要得到第一步里以name为方法名的方法的返回值类型可以强转
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马