可变参数
-
JDK 1.5开始,Java支持传递同类型的可变参数给一个方法。
-
在方法声明中,在指定参数类型 后加一个省略号(...)。
-
一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。
如:public void test(int x ,int...i){ //int...i即可变参数 普通参数int X要在它之前
}
(了解即可)
package com.baixiaofan.method;
public class Demo07 {
public static void main(String[] args) {
Demo07 demo07 = new Demo07();//没有用static的时候可以这么引用 直接输入new Demo07();点击小灯泡自动补充
demo07.test(1,2,3,4,60);//在idea中实际显示的是demo07.test(...i:1,2,3,4,60);
//这里的...i 是用在括号里面输入“ 自动填充的
//复制代码过来这里就变了没有了...i
}
public void test(int...i){ //不知道参数inti有多少个 用int...i来表示可变参数
System.out.println(i[0]);//输出第零位i的值 结果为1
System.out.println(i[1]);//结果为2
System.out.println(i[2]);//结果为3
System.out.println(i[3]);//结果为4
System.out.println(i[4]);//结果为60
}
}
结果为:
1
2
3
4
60
package com.baixiaofan.method;
public class Demo08 {
public static void main(String[] args) {
//调用可变参数的方法
printMax(34,3,3,2,56.5);//实际上idea中显示的是 printMax(...numbers:34,3,3,2,56.5);
//...numbers 在括号中用" 自动补充得到的
printMax(new double[]{1,2,3});
}
public static void printMax(double...numbers){
if (numbers.length==0){ //表示numbers没有长度
System.out.println("No argument passed"); //即没有传递参数
return;
}
double result =numbers[0];
//排序
for (int i = 1; i < numbers.length; i++) {
if (numbers[i]>result){
result=numbers[i];
}
}
System.out.println("The max value is" + result);
}
}
结果为:
The max value is56.5
The max value is3.0