[I不能强制转换为java.lang.Integer网址:com.cg.recure.ui.ArrayLisPr.main(ArrayLisPr.java:12(
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ArrayLisPr {
public static void main(String[] args) {
int[] x={11,20,3,4,5};
List<Integer> po = new ArrayList(Arrays.asList(x));
for(Integer val:po){
System.out.println(val);
}
}
}
x
是单个对象,它是int[]
,因此不能强制转换为Integer
。如果删除中间变量并直接使用Arrays.asList
,Java将能够将每个int
自动装箱为一个单独的Integer
:
List<Integer> po = new ArrayList<>(Arrays.asList(11,20,3,4,5));
编辑:
如果要保留int[]
引用,则必须手动将其转换为List<Integer>
。这样做的一种方法是将其流式传输并装箱所有元素:
List<Integer> po = Arrays.stream(x).boxed().collect(Collectors.toList());