黑马程序员技术交流社区

标题: 反射方法有可变参数,应该如何处理啊 [打印本页]

作者: 广驰    时间: 2012-9-20 16:08
标题: 反射方法有可变参数,应该如何处理啊
本帖最后由 应广驰 于 2012-9-20 16:25 编辑

在反射的方法中可变参数的值应该如何传递
  1. public class Try
  2. {
  3.         public void trys(int i,int...o)
  4.         {
  5.                 for(int a : o)
  6.                 {
  7.                         i += a;
  8.                 }
  9.                 System.out.println(i);
  10.         }
  11. }
复制代码

  1. public class Chanshu
  2. {
  3.         public static void main(String[] args) throws Exception
  4.         {
  5.                
  6.                 Try t = new Try();
  7.                 t.trys(1,12,53,64,567,3);
  8.                
  9.                 Method m = t.getClass().getMethod("trys", int.class,int[].class);//这里这样写可以吗
  10.                 m.invoke(t,???);//这里的参数该如何传递,试了几种方法都不对
  11.         }
  12. }
复制代码
求解,反射中出现可变参数,应该如何处理啊
作者: 彭润生    时间: 2012-9-20 16:22

                        Try t = new Try();
                        t.trys(1,12,53,64,567,3);
                        
                        Method m = t.getClass().getMethod("trys", int.class,int[].class);//这里这样写可以吗.这样写可以,可变参数就是相当于数组。
                        m.invoke(t,2,new int[] {25});//用这样就可以了吧,你试试。可以在{}里面穿多个参数。


作者: 广驰    时间: 2012-9-20 16:24
彭润生 发表于 2012-9-20 16:22
Try t = new Try();
                        t.trys(1,12,53,64,567,3);
       ...

m.invoke(t,2,new int[] {25});呃,试了好久,原来是忘了new了,用的是英文版的也不知道什么提示,谢谢




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