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

© 广驰 中级黑马   /  2012-9-20 16:08  /  1423 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 应广驰 于 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. }
复制代码
求解,反射中出现可变参数,应该如何处理啊

2 个回复

正序浏览
彭润生 发表于 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了,用的是英文版的也不知道什么提示,谢谢
回复 使用道具 举报

                        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});//用这样就可以了吧,你试试。可以在{}里面穿多个参数。

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