搜索这个只能在 C++ 中找到答案,我已经很了解它了,但是我如何在 Java 中做到这一点?我找到的答案表明我需要执行以下操作:
class FixedArray<T> {
public FixedArray(byte size) {
array = new T[size];
}
private T[] array;
}
...但我收到错误
Type parameter 'T' cannot be instantiated directly
最佳答案
实际上T
并不是任何数据类型,而只是Generics
的代表,因此您需要初始化一个通用的Object[]
数组并进行强制转换它为通用类型T
,
试试这个:
class FixedArray<T> {
public FixedArray(byte size) {
array = (T[]) new Object[size];
}
private T[] array;
}
例如,您需要有一个整数数组,它将相当于:
Integer[] array = (Integer[]) new Object[size];
关于Java - 如何在模板类的构造函数中初始化包含 T 类型项目的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57739046/