一、可变参数定义使用:
JDK1.5之后,方法参数可以定义为可变参数类型[可变参数的参数数量可变,参数类型是相同的]。 可变参数是0、1、2、3、....n个参数的数组,传递的参数数量可以是0-n个。
修饰符 返回值类型 方法名(参数类型... 形参名){
}
public void varargFun(String name, int... height){
}
等价于下面这种形式:
修饰符 返回值类型 方法名(参数类型[] 形参名){
}
区别就是后面这种定义,在调用时必须传递数组,而前者可以直接传递数据。
import java.util.Arrays;
public class VarArgClass {
public static void main(String[] args) {
method(1, 2, 3, 4, 5);
}
public static int method(int... arr) {
System.out.println("可变参数:" + Arrays.toString(arr));
System.out.println("可变参数长度,即数组元素个数:" + arr.length);
return 0;
}
}
二、可变参数的原理:
底层实现是一个数组,根据传递参数个数不同,会创建不同长度的数组,来储存这些参数。
三、可变参数的规则:
一个方法的参数列表只能有一个可变参数;如果方法参数有多个,那么可变参数必须写在参数列表的末尾。