泛型数组的创建
可以声明带泛型的数组引用,但是不能直接创建带泛型的数组对象
因为泛型在编译器会做类型的擦除,而数组会在整个编译器持有它初始的数据类型,两者在设计上就是冲突的,所以上面数组创建是会报错的。
下面图片是正确创建泛型数组的方法
创建泛型数组:会拿着泛型类型去创建一个数组引用: ArryList listArr,
等号后面 new创建对象:不采用泛型而是采用原始的数据类型创建一个数组对象,然后赋值给引用,操作时去拿引用listArr操作。
可以通过java.lang.reflect.Array的newInstance(Class,int)创建T[]数组
案例说明
首先创建一个泛型类
通过Fruit构造函数进行数组初始化:
总结建议:在开发过程中,尽量不要使用泛型数组,使用泛型集合去代替泛型数组