本篇学习java中的可变长参数(varargs),使用varargs的时候,说明这个方法中,你暂时不确定有多少个参数传入。但是在调用该方法的时候,你就需要具体写出多少个参数。在同一个方法中,使用varargs必须要求参数都是同一个数据类型。一般格式是这样的public void fun(int ...x),小括号的三个点表示省略,直接来看下面的例子。
package javademo;
public class Demo {
public static void main(String args[]){
System.out.println(normalMethod(3,5));
methodVarArgs(2,3,4,8,9,23,67);
apendString("hello", "java","你好");
calcAverage(33.4,233.0,2455);
}
public static int normalMethod(int a, int b){
return a + b;
}
public static int methodVarArgs(int ...a){
int total = 0;
for (int i= 0 ; i<a.length; i++) {
total += a[i];
}
System.out.println("total is "+ total);
return total;
}
public static double calcAverage(double ...numberOfUsersPerHour){
double totalUsers = 0;
for(int i=0; i<numberOfUsersPerHour.length; i++){
totalUsers += numberOfUsersPerHour[i];
}
System.out.println("totalUsers is "+ totalUsers);
return totalUsers;
}
public static void apendString(String ...s){
StringBuffer strb = new StringBuffer();
for(String x : s){
strb.append(x);
strb.append(" ");
}
System.out.println(strb);
}
}
运行结果:
8
total is 116
hello java 你好
totalUsers is 2721.4
从上面可以看出,可变参数可以当做数组使用,在for循环里,使用了a.length和a[i]。这里要注意一点,一个方法只能有一个可变参数,而且这个可变参数必须是该方法的最后一个参数,注意书写的时候,把可变参数放小括号里最后一个参数。