可变参数或者不定项参数
JDK 1.5开始,Java支持传递同类型的可变参数给同一个方法。
- 在方法声明中,在指定参数类型后加一个省略号(
…
)。如:
// 参数类型+...
public void add (int... i){}
- 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。如:
// 可以多个参数,但可变参数要放最后
public void add (int x, int... i){}
示例:
package com.zctou.method;
public class Demo05 {
public static void main(String[] args) {
//Java可变参数演示
double d = printMax(10.1,20.3,10.2,-1.2,11.4);
System.out.println(d);
System.out.println("============");
double d1 = printMax();
System.out.println(d1);
}
//定义一个比较大小的方法,形参为可变参数
public static double printMax(double... d) {
double max = 0.0 ;
//如果什么都没传给方法,打印信息并返回
if(d.length == 0) {
System.out.println("没有最大值,请输入有效数值~");
return max ;
}
//有传入有效数值,开始比较
for(double x : d){
if(x > max) {
max = x ;
}
}
System.out.println("```");
return max ;
}
}
输出:
```
20.3
============
没有最大值,请输入有效数值~
0.0
可以看到,不传参数时,方法直接满足if(d.length == 0)
的条件,直接返回max=0.0,跳过了后面的for 循环和输出语句。