遇到一问题:
ArrayList<sealDTO> list=new ArrayList<sealDTO>();
sealDTO d1=new sealDTO();
d1.setDirectuser("thomas1");
sealDTO d2=new sealDTO();
d1.setDirectuser("thomas2");
sealDTO d3=new sealDTO();
d1.setDirectuser("thomas3");
sealDTO d4=new sealDTO();
d1.setDirectuser("thomas4");
list.add(d1);
list.add(d2);
list.add(d3);
list.add(d4);
ArrayList<sealDTO> l2 =(ArrayList<sealDTO>) list.subList(1, 2);红色部分报告 转型异常,为什么会有转型异常啊,感觉很奇怪
ArrayList<sealDTO> list=new ArrayList<sealDTO>();
sealDTO d1=new sealDTO();
d1.setDirectuser("thomas1");
sealDTO d2=new sealDTO();
d1.setDirectuser("thomas2");
sealDTO d3=new sealDTO();
d1.setDirectuser("thomas3");
sealDTO d4=new sealDTO();
d1.setDirectuser("thomas4");
list.add(d1);
list.add(d2);
list.add(d3);
list.add(d4);
ArrayList<sealDTO> l2 =(ArrayList<sealDTO>) list.subList(1, 2);红色部分报告 转型异常,为什么会有转型异常啊,感觉很奇怪
该列表包括了调用列表中从start到end–1的元素。
2.List接口的subList(int,int)方法在api上解释是返回一个List接口的实例,而实际他返回了一个RandomAccessSubList的实例,RandomAccessSubList确实是List接口的实现类不错,但强行转成ArrayList就肯定要报转型异常了。可以通过的写法是:List <sealDTO> l2 = list.subList(1, 2); 我也比较纳闷会出这种错,写了代码后才知道,找到错误的地方还是异常堆栈信息,注意看:
Exception in thread "main" java.lang.ClassCastException: java.util.RandomAccessSubList
把ArrayList换成List
然而ArrayList和RandomAccessSubList之间没有继承或者实现的关系