Java 开发 - Java 创建泛型数组
·
Java 创建泛型数组
1、问题引入
- Java 的泛型是通过类型擦除实现的,在运行时无法知道泛型参数 T 的具体类型,无法直接创建泛型数组
// 错误,无法直接创建泛型数组
public class GenArray<T> {
private final T[] arr;
public GenArray(int size) {
arr = new T[size];
}
}
2、处理策略
- 创建
Object[]然后强制转换
public class GenArray<T> {
private final T[] arr;
public GenArray(int size) {
arr = (T[]) new Object[size];
}
}
GenArray<Integer> genArray = new GenArray<>(3);
- 通过反射创建数组
public class GenArray<T> {
private final T[] arr;
public GenArray(Class<T> clazz, int size) {
arr = (T[]) Array.newInstance(clazz, size);
}
}
GenArray<Integer> genArray = new GenArray<>(Integer.class, 3);
更多推荐


所有评论(0)