Java语法糖-可变参数
可变长度参数
在Java5 中提供了变长参数(varargs),也就是在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用,使用...表示可变长参数;
看一段代码:
1 public static void main(String[] args) { 2 print("000", "111", "222", "333"); 3 } 4 5 public static void print(String... strs) { 6 for (String string : strs) { 7 System.out.println(string); 8 } 9 }
print方法的参数的意思是表示传入的String个数是不定的,看一下代码的运行结果:
1 000 2 111 3 222 4 333
1、可以使用遍历数组的方式去遍历可变参数
2、可变参数是利用数组实现的
既然这样,main函数也可以这么写:
1 String[] strs = {"000", "111", "222", "333"}; 2 print(strs);
那直接传入一个数组不就好了?问题是,数组是要指定长度的,万一这次我想传2个String,下次我想传3个String怎么办呢?
可变长参数的使用规则
1、可变长度参数必须作为方法参数列表中的的最后一个参数且方法参数列表中只能有一个可变长度参数;
2、调用方法是如果即可以和固定参数方法匹配也可以和可变长参数匹配,那么就调用固定参数方法;
3、可变长参数不能为null;