toArray是Java集合框架中用于将集合元素转换为数组的方法,主要存在于ArrayList等实现了Collection接口的类中。其功能核心是将动态集合数据转换为静态数组结构,满足特定场景下的类型操作需求。
可以看出,不带参数的toArray()方法,是构造的一个Object
数组,然后进行数据copy,此时进行转型就会产生ClassCastException
而带参数的toArray(T[] a) 方法,则是根据参数数组的类型,构造了一个对应类型的,长度跟
ArrayList的size一致的
空数组,虽然方法本身还是以 Object 数组的形式返回结果,不过由于构造数组使用的ComponentType跟需要转型的ComponentType一致,就不会产生转型异常