我们在开发程序的过程中,有时候写的一个方法,它可能要接收若干个参数,而这个参数的个数是不确定的.比如说一个加法的函数,有时候我们需要它两个数去相加,有时候需要三个数去相加,有时候又要用四个,五个,六个数去相加等等,按照通常的思路,我们可能每个不同数量的函数都写一个重载的函数,这是非常麻烦的.
System.out.println(add(2,3,5));
System.out.println(add(2,3,4,5));
那么在jdk1.5中就可以使用可变参数来解决这个问题
public static int add(int x,int... args){
int sum = x;
for(int i=0;i<args.length;i++){
sum += args[i];
}
return sum;
}
可变参数的特点:
只能出现在参数列表的最后;
...位于变量类型和变量名之间,前后有无空格都可以;
调用可变参数的方法时,编译器为该可娄隐含创建一个数组,在方法中以数组的形式访问可变参数.
根据上面的代码,也许编译器编译的时候是这样编译的
public static void main(String[] args) {
System.out.println(add(2,[3,5]));
System.out.println(add(2,[3,4,5]));
}
public static int add(int x,int... args){
int sum = x;
for(int i=0;i<args.length;i++){
sum += args[i];
}
return sum;
}