黑马程序员技术交流社区

标题: Jdk1.4中的Invoke方法 [打印本页]

作者: 陈浩    时间: 2012-2-2 20:08
标题: Jdk1.4中的Invoke方法
本帖最后由 陈浩 于 2012-2-2 22:52 编辑

在Jdk1.4中Invoke方法的参数是Object obj ,object []args,请问后面的数组怎么理解和使用?
作者: 陈丹阳    时间: 2012-2-2 21:32
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)); 具体过程有时还要进行强转

作者: 易伟    时间: 2012-2-2 21:42
本帖最后由 易伟 于 2012-2-2 21:45 编辑

Invoke方法的参数是Object obj ,object []args,第一个参数Object obj 是调用这个方法的对象,
第二个参数object []args是函数参数,此处用的是数组方式,jak1.5后用可变参数Obje...arg,
一般是函数名.invoke,例如:add.invoke(person, "易伟")
作者: 易伟    时间: 2012-2-2 21:46
陈丹阳 发表于 2012-2-2 21:32
java1.5中的 args... 的具体实现。

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

回答的好啊,:handshake
作者: 陈浩    时间: 2012-2-2 22:47
本帖最后由 陈浩 于 2012-2-2 22:51 编辑
陈丹阳 发表于 2012-2-2 21:32 java1.5中的 args... 的具体实现。 举个例子 在1.5中 如果用反射调用 String substring(int beginIndex, i ...
谢谢哥们,我明白了,不过1.4中是把数组打散成若干个对象,倘若再在外成包装一数组,也可以解决问题,你觉得这个方法如何?




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