黑马程序员技术交流社区

标题: 关于反射中的Method类下的invoke方法的使用的一些疑问 [打印本页]

作者: 王小三    时间: 2015-10-5 22:50
标题: 关于反射中的Method类下的invoke方法的使用的一些疑问
通过反射来调用一个无参方法的时候用到public void invoke(Object, Object...),由于没有参数,应该怎么写?是用null还是什么?但是用null运行会报错:wrong number of arguments.求解!
作者: zq19910303    时间: 2015-10-6 10:21
很简单,什么也不写就是了。invoke(obj)
作者: 王小三    时间: 2015-10-9 18:49
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));
作者: zq19910303    时间: 2015-10-9 18:56
Object... args是可变参数的意思,也就是说Object类型的参数想传多少个都行,包括0个,0个不就是什么也没有吗?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2