Java有没有办法初始化类型安全的通用数组?

sta*_*low 2 java generics

我有以下代码

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());
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法初始化类型安全通用数组?

Mar*_*nik 6

除非您以表示特定值的T实际Class<T>对象的形式提供具体化,否则没有办法T.这是因为数组类型是有效的,而通用类型则不是.

  • Interestig词"具体化".那是什么意思?这是一个特殊的泛型词汇吗? (3认同)