public class TestVarArgus { 

• public static void dealArray(int... intArray){

• for (int i : intArray)

• System.out.print(i +" ");



• System.out.println();

• }



• public static void main(String args[]){

• dealArray();

• dealArray(1);

• dealArray(1, 2, 3);

• }

•}


可以看出来这个可变参数既可以是没有参数(空参数),也可以是不定长的。看到这里估计都能明白,这个不定长的参数其实和数组参数挺像的。事实上,也确实是这么回事儿。编译器会在悄悄地把这最后一个形参转化为一个数组形参,并在编译出的class文件里作上一个记号,表明这是个实参个数可变的方法。请看代码:

dealArray(); //dealArray(int[] intArray{}); 

• dealArray(1); //dealArray(int[] intArray{1});

• dealArray(1, 2, 3); //dealArray(int[] intArray{1, 2, 3});