日期:2014-05-20  浏览次数:20549 次

Java中Arrays.aslist方法问题
import java.util.Arrays;
import java.util.List;


public class Demo {
public static void main(String[] args) {
int[] arr = {1,2,3};
List<int[]> l1 = Arrays.asList(arr);
for (int[] is : l1) {
for (int i : is) {
System.out.println(i);
}
}
Integer[] arr2 = {3,4,5};
List<Integer> l2 = Arrays.asList(arr2);
for (Integer integer : l2) {
System.out.println(integer);
}

}
}

为什么用int存的时候list泛型上必须为int[],而用Integer的时候就不用呢?看了下asList的源代码,发现还是不懂。

------解决方案--------------------
泛型必须是对象类型的(new出来的),int是基本类型,int[]是数组(可以new int[n]),为对象类型。或者说,泛型T必须是Object的子类。