无法在Java中创建...的通用数组

时间:2015-01-31 15:20:20

标签: java arrays eclipse generics

我收到的错误是我无法理解的。 我用这种方式用Java定义了类Couple:

public class Couple<T1, T2>{


private T1 t1;
private T2 t2;

    public Couple(T1 t1, T2 t2) {
        this.t1 = t1;
        this.t2 = t2;
    }

    public Couple() {
        this.t1 = null;
        this.t2 = null;
    }


    public T1 getFirst(){return t1;}
    public T2 getSecond(){return t2;}
}

在另一个类中,我尝试以这种方式定义数组:

Couple<byte[], byte[]>[] res = new Couple<byte[], byte[]>[10];

但Eclipse告诉我错误"Cannot create a generic array of Couple<byte[], byte[]> "。 好吧,我不明白的是,我提到我想要几个字节[],所以此时没有通用性,我错了吗?

1 个答案:

答案 0 :(得分:4)

Java泛型没有具体化,这意味着&#39;实现&#39;不是自己的课程。您无法创建泛型类型数组的事实是该语言的固有限制。

我建议您使用List而不是数组。