【发布时间】:2012-05-11 00:35:13
【问题描述】:
可能重复:
Java how to: Generic Array creation
Error: Generic Array Creation
我收到此错误:
Cannot create a generic array of T
这是我的代码(第 6 行错误):
1 public class HashTable<T> {
2
3 private T[] array;
4
5 HashTable(int initSize) {
6 this.array = new T[initSize];
7 }
8 }
我想知道为什么会出现这个错误以及修复它的最佳解决方案。谢谢。
更新:
我调整了我的代码,以便数组改为采用链表,但我收到了一个新错误。
这是我的错误:
Cannot create a generic array of LinkedList<T>
这是我的代码(第六行错误):
1 public class HashTable<T> {
2
3 private LinkedList<T>[] array;
4
5 HashTable(int initSize) {
6 this.array = new LinkedList<T>[initSize];
7 }
8 }
此错误是否出于完全相同的原因?我只是假设我可以创建通用链表并将它们存储在数组中。
【问题讨论】:
-
这可能是不可能的:stackoverflow.com/a/217110(认为这不太一样)
-
你不想要一个链表数组——你只需要一个链表(或 ArrayList)并将其视为一个数组!即与 AlexR 的回答完全相同。 ArrayList 是数组周围的简单 Collection 包装器。
-
我实际上是在实现一个哈希表(对于某个实现)需要数组来保存数组列表。我发现简单的转换方法最适合我的场景。 (LinkedList
[])(new LinkedList[initSize])