subList的异常
Exception in thread "main" java.lang.ClassCastException: java.util.RandomAccessSubList cannot be cast to java.util.ArrayList
at com..test.TestDemo.main(TestDemo.java:14)
List类在调用subList(int from,int to);函数时出现 java.lang.ClassCastException异常,
View Code
public static void main(String[] args) { List<Integer> list=new ArrayList<Integer>(); for(int i=0;i<10;i++){ list.add(i); } list=(ArrayList<Integer>) list.subList(0,1); // list=new ArrayList<Integer>(list.subList(0,2)); for(int temp:list){ System.out.println(temp+"\t"); } } }
具体操作:
list=new ArrayList<Integer>(list.subList(0,2));
或者
list=list.subList(0,2);
原因是subList在返回时会返回一个java.util.RandomAccessSubList ,所以强转会不成功的。