java.util.RandomAccessSubList cannot be cast to java.util.ArrayList解决办法

public class subListTest {
 
    public static void main(String[] args){
        ArrayList list = new ArrayList();       
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);        
        List listsub = list.subList(0, 3);
        System.out.println(listsub);
    }
}

 List listsub = list.subList(0, 3); 如果改成下面的式子

     ArrayList listsub = list.subList(0, 3);就会报标题的java.util.RandomAccessSubList cannot be cast to java.util.ArrayList错误。

原因分析是:subList返回的是list,问题就是在subList方法中

public List subList(int fromIndex, int toIndex) {
        return (this instanceof RandomAccess ?
                new RandomAccessSubList(this, fromIndex, toIndex) :
                new SubList(this, fromIndex, toIndex));
    }







你可能感兴趣的:(JAVA)