編寫Java程序時,經常會遇到一個方法需要多個參數的情況。例如一個求和方法:
public int add(int[] list){
int sum = 0;
for (int i=0;i<list.length;i++)
sum += list[i];
return sum;
}
當然也可以利用重載的方式:
public int add(int a,int b){
return a + b;
}
public int add(int a,int b,int c){
return a + b + c;
}
如果程序可能的情況較少,重載方式可能是個好的選擇。若是可能的情況很多,無疑上面的方法擴展性會更
強一些。但是還有沒有更好的辦法呢?
JDK5優化了for循環,可以利用它來寫更簡潔的代碼:
public int add(int... list){
int sum = 0;
for (int item:list)
sum += item;
return sum;
}
注意add(int... list) ,三個點代表的是數量可變的參數,相信這點很多學Java的人都不知道。
另外需要注意的一點是,可變參數必須放在所有參數的最后,例如
add(int... list,int a) 是錯誤的,但是add(int a,int... list)就是正確的。