运行时错误:Java中使用泛型的列表数组

时间:2015-06-25 12:15:27

标签: java arrays generics hashtable

我尝试以下方法使用泛型实现单独的链式哈希表:

// hash table class
protected List<HashEntry<K, V>>[] bucket;
this.bucket = (List<HashEntry<K, V>>[]) new Object[capacity];(*)
(...)
// main program
HashTableMapSC<Integer, String> hashSC = new HashTableMapSC<Integer,String>(7);

我收到以下运行时错误:

  

[Ltablashash.HashTableMapSC $ HashEntry;无法转换为[Ljava.util.List;

位于(*)

HashEntry只是一个保存键值对的简单私有类。

我知道这会奏效:

protected List<List<HashEntry<K,V>>> bucket;

但是当我被要求这样做时,我想知道它是否可能。

由于

1 个答案:

答案 0 :(得分:2)

如果你肯定需要一系列泛型(通常不鼓励),请使用

this.bucket = new List[capacity];

你会收到一个rawtypes警告。