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<E> subList(int fromIndex,int toIndex) {

        return (this instanceof RandomAccess ?

                new RandomAccessSubList<E>(this, fromIndex, toIndex) :

                new SubList<E>(this, fromIndex, toIndex));

    }


版权声明:本文为jam_yin原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。