可变参数如果传入基本类型数组,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);