public static void main(String[] args) {
System.out.println("test1:");
test("a","b","c");
System.out.println("test2:");
test(new String[] {"a", "b", "c"});
}
/**
* 测试方法
* @param params 参数
* */
public static void test(String... params){
//遍历参数内容
for(String temp : params){
System.out.println(temp);
}
System.out.println();
}
输入结果
从控制台结果可以看到,对于数组和同类型多入参都会解析为数组进行处理,那么如果不同类型多入参呢?继续看一下
定义这中类型的入参必须放到最后一个才可以,也就是说int入参需要放到可变入参的前面,同时再test1处增加一个String进行测试,看一下代码。
public static void main(String[] args) {
System.out.println("test1:");
test(1,"a","b","c","d");
System.out.println("test2:");
test(2,new String[] {"a", "b", "c"});
}
/**
* 测试方法
* @param params 参数
* */
public static void test(int intParam,String... params){
System.out.println("int:"+intParam);
//遍历参数内容
for(String temp : params){
System.out.println(temp);
}
System.out.println();
}
执行结果:
那么可不可以使用多个可变参数作为入参呢?答案是不可以的,原因跟上一个错误差不多,这种可变参数需要放到最后一个入参,多个可变参数,不可能都最为最后一个入参。相较于String[]这种形式的入参,我理解的优势大概就是可以多个String传入,也可以Sting[]传入,就是test1的调用入参这样。