以下代码返回一个整数列表:
Integer[] arr = new Integer[] {3,2,1};
List<Integer> list = Arrays.asList(arr);
为什么相同的代码使用&#34; int&#34;返回int []的列表:
int[] arr = new int[] {3,2,1};
List<int[]> list = Arrays.asList(arr);
答案 0 :(得分:3)
是的,它将此视为使用varargs和int[]
作为类型参数的调用,即
List<int[]> list = Arrays.<int[]>asList(new int[][] { arr });
另一种方法是推断T=int
......这是不可能的,因为Java泛型不支持使用原语作为类型参数。这种限制是造成这种差异的原因。