java中有一种传参形式是这样的
public static void show(int… a);(在jdk1.5之后才可以使用)
当这样写的时候 show方法可以传递任意个数的参数,show()、show(1)、show(1,2,3)、show(3、8、23、17)这样调用都是不会报错的。
这样传的时候会把a当作一个长度可变的数组。比如调用时候这样“show(1);”声明1个int的空间且赋值{1}。调用时候这样“show(3、8、23、17);”声明4个int的大小赋值{3,8,23,17}。
就是传几个参数a数组的长度就是几,无参地调用,则a.length=0
package array;
public class ChangeableParam {
public static void main(String[] args) {
show();
show(1,3,5,7,9);
show(2,4,6,8,0,12);
}
public static void show(int... a){
System.out.println("当前传递的参数个数是:"+a.length);
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+" ");
}
System.out.println();
System.out.println("\n");
}
}
输出结果:
当前传递的参数个数是:0 //调用无参方法时a数组没有值,所以数组长度是0
当前传递的参数个数是:5
1 3 5 7 9
当前传递的参数个数是:6
2 4 6 8 0 12