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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhrnghgwsws 中级黑马   /  2014-5-25 01:09  /  2495 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Method类中的invoke(Object obj, Object... args)
方法不是要接收两个参数吗?
但是当这个方法本身没有参数时,写法是这样的:
invoke(Object obj)
这样的话对于调用一个方法来说,传递的参数都不正确,为什么还可以这样使用呢?

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
我去怎么变成这样了。我重新写一下:
Method类中的invoke(Object obj,Object...args)方法不是要接收两个参数吗?
但是当这个方法本身没有参数时,可以只写作用于的对象,写法是这样的:
invoke(Object obj)
这样的话对于调用一个方法来说,传递的参数(个数)都不正确,为什么还可以这样使用呢?

回复 使用道具 举报 1 0
对带有指定参数的指定对象调用由此 Method 对象表示的底层方法。个别参数被自动解包,以便与基本形参相匹配,基本参数和引用参数都随需服从方法调用转换。
如果底层方法是静态的,那么可以忽略指定的 obj 参数。该参数可以为 null。

如果底层方法所需的形参数为 0,则所提供的 args 数组长度可以为 0 或 null。

点评

赞一个!  发表于 2014-6-14 13:14

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1 赞一个!

查看全部评分

回复 使用道具 举报 1 0
我刚才也查了api,上面的方法是invoke(Object obj, Object... args)    Object... args是多参数形式,就是说你可以传递0到n个参数都是正确接受的,所以传递空也是正确的。

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马