【发布时间】:2018-10-23 06:31:43
【问题描述】:
我发现了一个我至今无法解释的奇怪案例。
public static void main(String[] args) {
LinkedList<Integer> a = new LinkedList<>();
a.add(2);
a.add(3);
a.add(4);
for (ArrayList ax : getBatches(a)){
System.out.println(ax);
}
}
private static ArrayList<ArrayList<Integer>> getBatches(List<Integer> optionIds) {
return new ArrayList(Arrays.asList(optionIds));
}
执行结果是:
线程“main”java.lang.ClassCastException 中的异常:java.util.LinkedList 无法转换为 java.util.ArrayList
for 循环中出现异常。
问题是:如何?返回类型为 ArrayList> 的方法如何返回 LinkedList?
【问题讨论】:
-
您的
getBatches方法返回一个ArrayList,但是这个ArrayList包含一个LinkedList。这就是您的循环失败的情况。
标签: java arraylist collections classcastexception