可變參數如果傳入基本類型數組,JVM會當整個數組當做一個參數來處理。如果傳入的是封裝類型的數組,那麼數組中內容會被拆分成多個參數傳入方法。代碼如下:
public static void main(String[] args) {
Integer[] test = new Integer[] {1, 2, 5};
int[] test2 = new int[] {1, 2, 5};
// public static <T> List<T> asList(T... a)
List result1 = Arrays.asList(test);
List result2 = Arrays.asList(test2);
System.out.println("result1:" + result1);
System.out.println("result1 size:" + result1.size());
System.out.println("result2:" + result2);
System.out.println("result2 size:" + result2.size());
}
結果:
result1:[1, 2, 5]
result1 size:3
result2:[[I@4554617c]
result2 size:1
可變參數還可以這麼玩兒,傳入不同的參數類型。
public <T> void printMsg( T... args){
for(T t : args){
Log.d("測試","t is " + t);
}
}
printMsg("111",222,"aaaa","2323.4",55.55);