我有以下代码
public class Container<T> {
private T element;
private T[] tarray;
public T getElement() {
return element;
}
public void setElement(T element) {
this.element = element;
}
public void add(T element) {
tarray[0] = element;
}
public void CreateArray(int size) {
//Can this be cleaned up better?
tarray = (T[]) new Object[size];
}
public T get() {
return tarray[0];
}
public Container(T someElement) {
this.element = someElement;
}
public Container() {
}
public static void main(String[] args) {
Container<String> myContaier1 = new Container<String>();
myContaier1.setElement("Hello");
myContaier1.CreateArray(1);
myContaier1.add("GoodBye");
System.out.println(myContaier1.get());
}
}
有没有办法初始化类型安全的泛型数组?
最佳答案
除非你提供具体化的T
,否则没有办法。以实际 Class<T>
的形式表示特定值 T
的对象。这是因为数组类型是具体化的,而泛型类型则不是。
关于Java 有没有办法初始化类型安全的通用数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14820038/