Avatar ·

如何在Java中创建泛型数组?问题解决方案

大家好!我最近开始学习Java,在使用泛型时遇到了一个问题。我需要创建一个泛型类型的数组,但编译器报错。 这是我的代码: ```java public class MyContainer { private T[] array; public MyContainer(int size) { array = new T[size]; // 编译错误:"Type parameter 'T' cannot be instantiated directly" } } ``` 我理解Java不允许直接创建泛型类型的数组,因为类型擦除(type erasure)。但如何正确实现这样的结构呢?我需要将元素存储在数组中,并能够通过索引访问它们。我尝试过使用 `new Object[size]` 并强制类型转换,但这会产生 "unchecked cast" 警告。 请告诉我如何在Java中正确创建泛型数组,使代码类型安全且不产生警告?也许有一些替代方法?我听说过 `Array.newInstance()`,但不太理解。