我不知道这对我来说是不是一种精神障碍,或者尽管花了几个小时研究已经提出的问题,但我还是无法得出最后的结论。我迷失并迷茫,试图理解这么多不同的答案。 :(
请告诉我执行以下操作的最佳方法。我花了相当多的时间来解决现有的问题,但无法获得底线。
我正在尝试将一个arraylist转换为一个数组,同时这样做会出现另一个关于对象和数组类型转换的问题。
ArrayList<Integer> al = new ArrayList<Integer>();
al.add(1);
al.add(2);
al.add(3);
Object[] oa = al.toArray();
int [] a = new int[al.size()];
a = (int[]) oa;
在最后一行中,它表示我无法从object []转换为int []。
那么,我如何对它进行类型转换,因为toArray方法只返回一个Object数组。
答案 0 :(得分:4)
数组oa
是一个Integer对象数组。而且您正在尝试将其转换为int
s。
您必须记住,当您将数组转换为其他类型时,不会发生对基本类型(Integer
)的引用类型(int
)的自动装箱/取消装箱。
答案 1 :(得分:0)
你不能施展它;您从Integer
获取oa
,将每个值int
作为a
,