【发布时间】:2011-05-31 15:11:39
【问题描述】:
我在 Java 中有这个奇怪的(我认为)问题。 我有一个 ArrayList,我想获取一个子列表。 但我得到以下异常。
package javatest;
import java.util.ArrayList;
public class JavaTest {
public static void main(String[] args) {
ArrayList<Integer> alist = new ArrayList<Integer>();
alist.add(10);
alist.add(20);
alist.add(30);
alist.add(40);
alist.add(50);
alist.add(60);
alist.add(70);
alist.add(80);
ArrayList<Integer> sub = (ArrayList<Integer>) alist.subList(2, 4);
for (Integer i : sub)
System.out.println(i);
}
}
运行:线程“main”中的异常 java.lang.ClassCastException: java.util.RandomAccessSubList 不能 被转换为 java.util.ArrayList 在 javatest.JavaTest.main(JavaTest.java:17) Java 结果:1
获取子列表的正确方法是什么?
谢谢
【问题讨论】:
-
坚持接口列表而不是实现,你会没事的。通过zeropage检查答案。