public class Test2 { public static void main(String[] args) throws Exception {
Class cl = Test2.class;
Method method = cl.getMethod("showArray", String[].class);
String[] params = new String[]{"aa", "bb"};
// method.invoke(null, params); // 这是不行的
method.invoke(null, (Object) params); // 这是行的
// String[]就是Object的子类,为什么要显示转换?
}

public static void showArray(String[] args) {
for (String s : args) {
System.out.println(s);
}
}
}

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【panqunjun】截止到2008-07-12 18:11:55的历史汇总数据(不包括此帖):
    发帖的总数量:3                        发帖的总分数:40                       每贴平均分数:13                       
    回帖的总数量:3                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:0                        结贴的总分数:0                        
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:3                        未结的总分数:40                       
    结贴的百分比:0.00  %               结分的百分比:0.00  %                  
    无满意结贴率:---------------------无满意结分率:---------------------
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  2.   

    invoke 的方法签名是:public Object invoke(Object obj, Object... args)第二个参数是个 Object 的变参,可以简单近似地看作是 Object[],由于 String[] 只是一个 Object,
    并不是 Object[],因此不能直接当作参数进行传递,需要将其强制转换成 Object 以满足 Object... args
    一个 Object 参数的要求。