在Java中,由于类型擦除的原因,不能直接创建泛型数组。但是,可以通过以下几种方法来创建泛型数组:
1. 使用`Array.newInstance`方法:
public class GenericArray
{ private T[] array;
public GenericArray(Class
type, int size) { array = (T[]) Array.newInstance(type, size);
}
// 其他方法,如get和set
}
2. 使用反射和类型转换:
public class GenericArray
{ private T[] array;
public GenericArray(int size) {
array = (T[]) new Object[size];
}
// 其他方法,如get和set
}
3. 使用`TypeToken`(需要第三方库,如Google的Guava库):
import com.google.common.reflect.TypeToken;
public class GenericArray
{ private T[] array;
public GenericArray(TypeToken
typeToken, int size) { array = typeToken.getType().cast(new Object[size]);
}
// 其他方法,如get和set
}
请注意,在使用这些方法时,由于Java泛型的类型擦除,运行时泛型数组的具体类型信息会丢失,因此可能需要在运行时进行类型检查和转换。
另外,请确保在使用泛型数组时遵循Java的类型安全规则,避免在运行时出现`ClassCastException`。