Java中的一些严重重复问题
我不知道这对我来说是不是一个心理障碍,但是尽管花了几个小时研究已经提出的问题,我还是不能得出最后的结论。试图理解这么多不同的答案,我感到迷茫和困惑( 请告诉我做以下事情的最佳方法。我花了相当长的时间研究了存在的问题,但没有得到底线 我试图将arraylist转换为数组,在转换过程中,出现了另一个关于对象和数组类型转换的问题Java中的一些严重重复问题,java,Java,我不知道这对我来说是不是一个心理障碍,但是尽管花了几个小时研究已经提出的问题,我还是不能得出最后的结论。试图理解这么多不同的答案,我感到迷茫和困惑( 请告诉我做以下事情的最佳方法。我花了相当长的时间研究了存在的问题,但没有得到底线 我试图将arraylist转换为数组,在转换过程中,出现了另一个关于对象和数组类型转换的问题 ArrayList<Integer> al = new ArrayList<Integer>(); al.add(1); al
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;
ArrayList al=new ArrayList();
al.添加(1);
al.添加(2);
al.添加(3);
对象[]oa=al.toArray();
int[]a=新的int[al.size()];
a=(int[])oa;
在最后一行,它说我不能从object[]强制转换为int[]
那么,由于toArray方法只返回一个对象数组,我该如何进行类型转换呢。数组
oa
是一个整数对象数组。您正试图将其转换为int
s数组
您必须记住将引用类型(
Integer
)自动装箱/取消装箱到基元类型(int
)当您将数组强制转换为其他类型时不会发生。您没有强制转换它;您从oa
获取整数,将每个值作为int
,您可以将其放入a
中,您读过了吗?这是否意味着我必须循环所有元素,并使用intValue()将每个整数转换为int方法?我的问题是,为什么你需要一个int[]
那么糟糕?你已经拥有的Integer[]
有什么问题吗?但简单的答案是肯定的,两者之间没有自动转换…你注定会陷入循环。这也不起作用。当我这样做时,它会给我一个类强制转换异常:Integer[]a=(Integer[])al.toArray();
@boyyett我想你可能误解了……但是如果你能接受一个Integer[]
你就可以得到一个:Integer[]integerArray=al.toArray(新的整数[]{})