Java中可变长参数的使用
在JDK1.5之后,提供了变长参数,也就是在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用,例如:print("hello");
print("hello","lisi");print("hello","张三", "alexia")等。
下面介绍如何定义可变长参数 以及如何使用可变长参数。
1.可变长参数的定义
使用...表示可变长参数,例如
print(String... args){
...
}
在具有可变长参数的方法中,可以用增强式for循环来取得每个参数。
int sumNumber(int... numbers){ int sum= 0; for(int number:numbers){ sum+=number; } return sum; }
2.可变长参数的调用
调用的时候可以给出任意多个参数也可不给参数,例如:
print(); print("hello"); print("hello","lisi"); print("hello","张三", "alexia")
3. 可变长参数的使用规则
- 在调用方法的时候,如果能够和固定参数的方法匹配,也能够与可变长参数的方法匹配,则选择固定参数的方法。
-
public class MyLearning { public static void main(String[] args){ int[] numbers = {3,9,0,1,6}; System.out.println(sumNumber(9)); System.out.println(sumNumber(1,3,9,0,5)); } static int sumNumber(int... numbers){ int sum= 0; for(int number:numbers){ sum+=number; } return sum; } static int sumNumber(int number){ return 1; } }
输出结果为:
1
18
- 一个方法的可变长参数只能有一个,且必须是该方法的最后一个参数。以下两段代码都无法通过编译
public void test(String... strings,ArrayList list){ } public void test(String... strings,ArrayList... list){ }
4. 可变长参数的使用规范
- 避免带有可变长参数的方法重载:如3中第一个例子,编译器虽然知道怎么调用,但可读性较差。

浙公网安备 33010602011771号