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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

王小三

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

通过反射来调用一个无参方法的时候用到public void invoke(Object, Object...),由于没有参数,应该怎么写?是用null还是什么?但是用null运行会报错:wrong number of arguments.求解!

3 个回复

正序浏览
Object... args是可变参数的意思,也就是说Object类型的参数想传多少个都行,包括0个,0个不就是什么也没有吗?
回复 使用道具 举报
zq19910303 发表于 2015-10-6 10:21
很简单,什么也不写就是了。invoke(obj)

invoke(Object obj, Object... args)在API里只有这个invoke方法,没有单参数的invoke方法,为什么只传对象也行呢,参数列表形式不相符啊?当然,我用下面的方式测试了下,也OK。
Method method=cls.getMethod("test", null);
System.out.println(method.invoke(cls.newInstance(),null));
回复 使用道具 举报
很简单,什么也不写就是了。invoke(obj)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马