方法的可变参数
当几个方法对相同类型的元素(个数不同)进行相同的操作时,首先有两种方式
1、定义不同个数变量的参数列表的重载函数,例如:
public void show(int a){} public void show(int a, int b){} public void show(int a, int b, int c){}
2、定义一个参数为数组的函数,每次操作时创建不同的数组,例如:
public void show(int[] a){} int[] a = {1,2}; show(a); int[] a = {1,2,3}; show(a);
3、但是这样代码书写有电繁琐,因此在jdk1.5后推出一种新特性,可变参数列表方法具体形式如下:
public void show(int ... a){}
此种类型的方法能够接收多个参数,例如:
show(1,2);//这样可以 show(2,3,5,3,5);//这样也可以
其实原理还是和第二种方式是一样的,参数列表中的a也是一个数组,但是在书写上要简单
**要注意的是,当一个函数不仅一种类型参数的时候要把可变参数放在最后,例如:
public void show(String s, int...a){}
假如把可变参数写在前边的时候,容易发生错误,例如如下代码:
class Test { public static void main(String[] args) { show(1,2,3,"hello"); } public static void show(int...a,String s) { for(int x : a) { System.out.println(x); } } }
错误如下: