参考:https://blog.youkuaiyun.com/gh102/article/details/7301051
看源码的时候发现有两种 toArray()
public Object[] toArray()Object[] toArray(Object a[])
一开始调用的是参数简单的第一种,然后强转报错…
后面上网查了查两种的区别:
①不带参数的toArray方法,是构造的一个Object数组,然后进行数据拷贝,此时进行转型就会产生ClassCastException
②带参数的toArray方法,则是根据参数数组的类型,构造了一个对应类型的,长度跟ArrayList的size一致的空数组,虽然方法本身还是以Object数组的形式返回结果,不过由于构造数组使用的ComponentType跟需要转型的ComponentType一致,就不会产生转型异常
3338

被折叠的 条评论
为什么被折叠?



