Java1.5的新特性
可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。也就是说,你要定义一个方法,但是不确定有几个参数,就可以定义成可变参数。
定义规则:以 ... 为标识 ...前后有无空格无所谓。
public void sum(int ...num){
...
}
public void sum(int... num){
...
}
public void sum(int...num){
...
}
定义可变参数需要注意的问题:
此方法编译会报错,因为当传进参数的时候,会全赋值给可变参数,后面参数就会没有值,所以就会报错
public void add(int... num, int i) {
...
}
因此必须调换一下位置,将可变参数放在最后面
public void add(int i,int... num) {
...
}
可变参数的用法,一个简单的求和 例子
@Test
public void show() {
// 调用了两次sum()方法 输出结果是一样的
int arr[] = { 1, 2, 3 }; // 定义一个数组
// 调用sum()
sum(arr); // 传一个数组
sum(1, 2, 3); // 一个值一个值的传递
}
// 定义sum()
public void sum(int... num) {
int sum = 0;
// 将可变参数当做一个数组来用
for (int i = 0; i < num.length; i++) {
sum += num[i];
}
System.out.println(sum);
}
其实java中很多地方都用到了可变参数,比如
Class的方法getDeclaredMethod(String name,Class<?>... parameterTypes)
Arrays中的方法asList(T... a) ...
我们在用的时候一定要注意,可变参数的类型问题,是对象类型呢,还是基本数据类型呢