Ben*_*key 7 java generics hash
所以我有这个我正在开发的通用HashTable类,我想将它一般用于任意数量的传入类型,我想将内部存储数组初始化为LinkedList的数组(用于冲突),其中每个LinkedList都是提前指定的(对于类型安全性),它是HashTable类中泛型的类型.我怎么能做到这一点?以下代码最能说明我的意图,但当然不能编译.
public class HashTable<K, V>
{
private LinkedList<V>[] m_storage;
public HashTable(int initialSize)
{
m_storage = new LinkedList<V>[initialSize];
}
}
Run Code Online (Sandbox Code Playgroud)
Avi*_*Avi 15
Java中的泛型不允许创建具有泛型类型的数组.您可以将数组转换为泛型类型,但这会生成未经检查的转换警告:
public class HashTable<K, V>
{
private LinkedList<V>[] m_storage;
public HashTable(int initialSize)
{
m_storage = (LinkedList<V>[]) new LinkedList[initialSize];
}
}
Run Code Online (Sandbox Code Playgroud)
这里有一个很好的解释,但没有深入了解为什么不允许通用数组创建的技术细节.
| 归档时间: |
|
| 查看次数: |
19839 次 |
| 最近记录: |