一,String[]在作为参数传递时,有可能被认为是传递了多个参数,前面加一个(Object)告诉编译器,传过来的就是一个参数。
在执行方法时候再把Object转换成String。
二,可变参数,终究还是数组,给个参考吧:
public static void main(String[] args) {
// TODO Auto-generated method stub
Test5 t5 = new Test5();
try {
Method m = t5.getClass().getMethod("tt", String.class,int[].class);
m.invoke(t5, "zhangsan",new int[]{1,2,3});
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void tt(String str,int ...ts){
int sum = 0;
for(int t : ts )
{
sum+=t;
}
System.out.println(str + "得分:"+sum);
} |