有時候會對某個函數的入參無法確定輸入個數,這個時候就需要使用可變參數,先來看看是如何使用的。
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
try {
uncertainParam("arg1","arg2","arg3");
} catch (Exception e) {
System.out.println(e.toString());
}
}
public static void uncertainParam(String ...param){
for(int i=0; i<param.length; i++) {
System.out.println(param[i]);
}
}
}
執行完後輸出:
arg1
arg2
arg3
使用了可變參數後函數是否還能有其他的參數呢?答案是可以的,例如在可變參數前面加一個整型參數。
/**
* @param args
*/
public static void main(String[] args) {
try {
uncertainParam(100, "arg1","arg2","arg3");
} catch (Exception e) {
System.out.println(e.toString());
}
}
public static void uncertainParam(int size, String ...param){
for(int i=0; i<param.length; i++) {
System.out.println(param[i]);
}
System.out.println("the size is:"+size);
}
執行完的結果:
arg1
arg2
arg3
the size is:100
如果在可變參數的後面增加參數會怎麼樣呢?Java編譯器會提示你可變參數必須位於最後一個參數。
通過前面的例子我們知道了可變參數是怎麼使用的,已經在使用的過程中要注意的一些約束。那麼可變參數到底是怎麼實現的呢?打開編譯後的java文件對應的class文件會發現,可變參數實際上是變成了一個數組。
public static void uncertainParam(String[] param) {
for (int i = 0; i < param.length; i++)
System.out.println(param[i]);
}