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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

今天在学反射里面的Method,发现难度还是挺大的。然后里面有些东西,还是不太明白。
                Method MethodClass=CLASSNAME.getClass().getMethod("main",String[].class);
                MethodClass.invoke(null, (Object)new String[]{"8","5","3"});
有没有谁能通俗的和我讲一下invoke的作用?和invoke(参数1,参数2)中参数1和参数2分别代表的是什么?

评分

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

查看全部评分

4 个回复

倒序浏览
参数1表示你要调用哪一个对象的方法,因为main 是静态方法,不要对象也可以运行。
参数2表示 反射到的方法那些参数,如main(String []agrs) 有一个String[] 数组的参数。

评分

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

查看全部评分

回复 使用道具 举报
_qishiwobusha_ 发表于 2014-6-23 01:36
参数1表示你要调用哪一个对象的方法,因为main 是静态方法,不要对象也可以运行。
参数2表示 反射到的方法 ...

谢谢啦!!!!1
回复 使用道具 举报
本帖最后由 张益达 于 2014-6-23 08:47 编辑

getMethod("main",String[].class);  JAVA中不是有重载吗  所以只通过方法名没有办法准确的定位方法具体是那个,所以就必须要根据参数来定位找到那个唯一的方法     invoke是调用  调用过的时候 如果是静态的方法 静态的东西属于类所以 不需要  对象  如果需要 吧invoke的第一个参数改成对象就可以了   后面是传入的参数  比方说 如果你想在执行一个类的时候 加载另一个类   还记得数据库的加载吗  就用到了反射 Class.forName("jdbc")
回复 使用道具 举报
张益达 发表于 2014-6-23 08:36
getMethod("main",String[].class);  JAVA中不是有重载吗  所以只通过方法名没有办法准确的定位方法具体是 ...

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