1.5版本的新特性,就是你想定义一个方法,但是不知道以后要用的时候想传几个参数进去,比如求和,你想定义一个传几个int数据都能给你算出和的方法,可以在方法的参数列表中这样写(参数类型... 数组名),然后在方法内部直接用操作数组的方式操作。在你调用的时候可以随便传几个参数进去,JVM都能将这些数据封装成一个数组,然后按照你方法内的操作进行操作。
举我上面说的求和的例:
public static int Sum(int... arr){
int sum=0;
for(int i=0;i<arr.length-1;i++){
sum+=arr[i];
}
return sum;
}
使用可变参数的一个注意:可变参数的定义,必须是放在参数列表的最后面,否则编译失败!
add(int... arr,int a,int b){……} 这个时候,如果在调用这个方法传值的时候,你传一个add(1,2,3,4,5,6),JVM不知道你最后两个是a和b,他会一起封装到arr数组中,后面的两个参数缺省,为了避免这种错误,编译器直接不让你这么定义。把格式封死,可变参数必须定义到最后面,即使你参数列表中的类型不一致,就是说不会发生上述的错误,也不行。