bra*_*orm 4 java arrays autoboxing copy list
以下是抛出compile error:
int[] arrs = {1,2,4,3,5,6};
List<Integer> arry = Arrays.asList(arrs);
Run Code Online (Sandbox Code Playgroud)
但这有效:
for (Integer i : arrs){
//do something
}
Run Code Online (Sandbox Code Playgroud)
自动拳击在许多情况下都有效,我刚才给出了一个例子for-loop.但是List-view我做的却失败了Arrays.asList().
为什么这会失败?为什么选择设计实现?
为了使事情有效,你需要使用Integer[]而不是int[].
的参数asList的类型是T...和通用类型T不能代表原始类型int,所以它会代表最具体的对象的类,它在这种情况下是阵列型int[].
这就是为什么Arrays.asList(arrs);会尝试返回List<int[]>而不是List<int>甚至List<Integer>.
有些人希望自动转换int[]为Integer[],但也要忘记自动装箱仅适用于基本类型,但数组不是基本类型.
| 归档时间: |
|
| 查看次数: |
442 次 |
| 最近记录: |