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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈浩 黑马帝   /  2012-2-2 20:08  /  1803 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 陈浩 于 2012-2-2 22:52 编辑

在Jdk1.4中Invoke方法的参数是Object obj ,object []args,请问后面的数组怎么理解和使用?

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

4 个回复

正序浏览
陈浩 来自手机 黑马帝 2012-2-2 22:47:13
报纸
本帖最后由 陈浩 于 2012-2-2 22:51 编辑
陈丹阳 发表于 2012-2-2 21:32 java1.5中的 args... 的具体实现。 举个例子 在1.5中 如果用反射调用 String substring(int beginIndex, i ...
谢谢哥们,我明白了,不过1.4中是把数组打散成若干个对象,倘若再在外成包装一数组,也可以解决问题,你觉得这个方法如何?
回复 使用道具 举报
陈丹阳 发表于 2012-2-2 21:32
java1.5中的 args... 的具体实现。

举个例子 在1.5中 如果用反射调用 String substring(int beginIndex, i ...

回答的好啊,:handshake
回复 使用道具 举报
本帖最后由 易伟 于 2012-2-2 21:45 编辑

Invoke方法的参数是Object obj ,object []args,第一个参数Object obj 是调用这个方法的对象,
第二个参数object []args是函数参数,此处用的是数组方式,jak1.5后用可变参数Obje...arg,
一般是函数名.invoke,例如:add.invoke(person, "易伟")

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
java1.5中的 args... 的具体实现。

举个例子 在1.5中 如果用反射调用 String substring(int beginIndex, int endIndex) 方法

可以  Method methodSub = "abc".getClass().getMethod("substring",int.class,int.class);
               
System.out.println(methodSub.invoke("abcaadfs",1,3));

但在1.4中 首先要把后面的参数列表封装成一个数组 Class[] c1 = {int.class,int.class}

然后 Method methodSub = "abc".getClass().getMethod("substring",args1);

调用时也一样,将后面的参数封装成数组,再进行调用

object[] args1 = {1,3};

进行invoke("abcaadfs",args1)); 具体过程有时还要进行强转

评分

参与人数 1技术分 +2 收起 理由
admin + 2

查看全部评分

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