Java中一些严重的重复问题[重复]
Posted
技术标签:
【中文标题】Java中一些严重的重复问题[重复]【英文标题】:Some serious duplicate questions in Java [duplicate] 【发布时间】:2015-05-03 08:06:30 【问题描述】:我不知道这对我来说是不是心理障碍还是什么,但尽管我花了几个小时研究已经提出的问题,但我还是无法得出最终结论。试图理解这么多不同的答案时,我迷失了方向。 :(
请告诉我执行以下操作的最佳方法。我花了相当多的时间来研究现有的问题,但无法得到底线。
我正在尝试将一个数组列表转换为一个数组,在此过程中,弹出了另一个关于对象和数组类型转换的问题。
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 数组。
【问题讨论】:
你读过How to convert List<Integer> to int in Java?吗? 【参考方案1】:数组oa
是一个整数对象数组。而您正试图将其转换为 int
s 的数组。
您必须记住,当您将数组转换为其他类型时,不会自动将引用类型 (Integer
) 装箱/拆箱到原始类型 (int
)。
【讨论】:
那么,这是否意味着我必须遍历所有元素并使用 intValue() 方法将每个 Integer 转换为 int? 我的问题是,你为什么需要这么糟糕的int[]
?您已经拥有的Integer[]
有什么问题?但简单的答案是肯定的,两者之间没有自动转换......你注定要陷入循环。
那也行不通。当我这样做时,它给了我一个类转换异常:Integer [] a = (Integer []) al.toArray();
@boyyett 我想你可能误解了......但如果你能接受Integer[]
,这就是你得到一个的方式:Integer[] integerArray = al.toArray(new Integer[])
【参考方案2】:
你不施放它;您从oa
获得Integer
s,将每个值作为int
,您可以输入a
。
【讨论】:
以上是关于Java中一些严重的重复问题[重复]的主要内容,如果未能解决你的问题,请参考以下文章