1.有了可变参数,就再也不用显式地编写数组语法了。
public class Different {
public static void main(String[] args) {
aArray(new int[]{1,2,3});
aVarargs(1,2,3); //此处就可以省略编写数组语法
}
//数组形式
static void aArray(int[] array){
for(int x : array){
System.out.print(x + " ");
}
}
//可变参数形式
static void aVarargs(int...array){
for(int x : array){
System.out.print(x + " ");
}
}
}
解释:当你在可变参数函数中指定参数时,编译器实际上会为你填充数组,函数接收的还是一个数组。
aVarargs(); //aVarargs(int[] array{});
aVarargs(1); //aVarargs(int[] array{1});
aVarargs(1,2,3); //aVarargs(int[] array{1,2,3});
2.重载过程优先级
优先匹配定长的方法
public class testVarargs{
public static void main(String[] args){
aVarargs(1,2);
}
static void aVarargs(int...array){
System.out.println(1);
}
static void aVarargs(int array1,int array2){
System.out.println(2);
}
}
/*Output:
2
*/
3.补充
1.可变参数放在参数列表的最后一个
2.参数列表可为空