【发布时间】:2015-06-19 16:27:16
【问题描述】:
我以为我明白你不能在 Java 中创建泛型类的数组,但是我最近看到的一些例子让我很困惑。有人可以解释吗?谢谢!
我有一个泛型类定义为:public class Bag<Item> implements Iterable<Item>
现在在一个名为 EdgeWeightedGraph(如下)的类中,我正在制作一个 Bag 数组,并且编译得很好。如果 Bag 不是泛型类,我知道这应该没问题,但在这里,它是。那为什么编译器不报错呢?
public class EdgeWeightedGraph {
private final int V;
private final Bag[] adj;
public EdgeWeightedGraph(int V) {
this.V = V;
adj = new Bag[V];
}
}
虽然它在另一个定义为的泛型类中引发错误:
public class MinPQ<Key extends Comparable<Key>> {
private Key[] pq;
public MinPQ() {
pq = new Key[2];
}
}
【问题讨论】: