场景: ArrayList 的 subList 强转成 ArrayList
1、首先我们看下面代码
测试结果:
2、为什么会产生上述异常?
下面 subList方法的源码
(1) SubList 继承 AbstractList ,所以具有List接口的所有方法。
(2) SubList 是ArrayList 的一个内部类。SubList并没有重新创建一个List,而是直接引用原有的List,只不过对原来List做截取而已。
(3) ArrayList 也是继承AbstractList,但是 SubList 和 ArrayList 没有继承关系,所以不能强制转换。