所以我有这个通用的Hashtable类我发展,我想一般用于任何数量的传入类型的,我想也初始化内部存储阵列是LinkedList的年代(碰撞目的)的阵列,其中每个链表指定的时间提前(用于类型安全)是通用的从Hashtable类的类型。 我怎样才能做到这一点? 下面的代码是最好的澄清我的意图,但当然不能编译。
public class HashTable<K, V>
{
private LinkedList<V>[] m_storage;
public HashTable(int initialSize)
{
m_storage = new LinkedList<V>[initialSize];
}
}
在Java泛型不允许使用泛型类型的数组的创建。 你可以投你的阵列到一个通用的类型,但这样会产生一个未经检查的转换警告:
public class HashTable<K, V>
{
private LinkedList<V>[] m_storage;
public HashTable(int initialSize)
{
m_storage = (LinkedList<V>[]) new LinkedList[initialSize];
}
}
这里是一个很好的解释,没有进入的,为什么通用阵列的创建是不允许的技术细节。
另外,还可以使用注释通过方法的基础上抑制方法的警告:
@SuppressWarnings("unchecked")
public HashTable(int initialSize) {
...
}