可变参数是java JDK1.5新特性。
假设要求设计一个方法,用于计算任意参数的整数的相加结果。
范例:用数组实现
public class Test{
public static void main(String[] args){
System.out.println(Add(new int[]{1,2,3}));//6
System.out.println(Add(new int[]{1,2,3,4,5}));//15
}
public static int Add(int[] data){
int ret=0;
for(int x:data){
ret+=x;
}
return ret;
}
}
范例:可变参数实现
public class Test{
public static void main(String[] args){
System.out.println(Add(1,2,3,4));
System.out.println(Add(new int[]{1,2,3,4,5}));
}
public static int Add(int ... data){
int ret=0;
for(int i=0;i<data.length;i++){
ret+=data[i];
}
return ret;
}
}
观察上面代码我们发现:
可变参数语法:类型 … 参数名称
可变参数的本质还是数组
范例:传递多类参数
public class Test{
public static void main(String[] args){
System.out.println(Add("HL",1,2,3,4));
System.out.println(Add("he",new int[]{1,2,3,4,5}));
}
public static int Add(String str,int ... data){
int ret=0;
for(int i=0;i<data.length;i++){
ret+=data[i];
}
System.out.println(str);
return ret;
}
}
注意:一个方法有且只能有一个可变参数,并且放在方法的最后一个参数。