所以我通常知道要创建一个通用的数组,你可以这样做:爪哇 - 创建一个对象的数组泛型参数
E[] e = (E[]) new Object[10];
但是我有一个类Entrant<K, V>
它有两个通用的参数。 我似乎无法将一个Object数组转换为它。
这里是Mainy完整的代码和运行时错误
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [LHashTable.Entrant;
at HashTable.HashTable.<init>(HashTable.java:10)
at Mainy.map(Mainy.java:32)
线32:
HashTable h = new HashTable();
Hashtable的代码:
public class HashTable<K, V> {
Entrant<K, V>[] _entrants;
private static final int N = 16;
public HashTable() {
_entrants = (Entrant<K, V>[]) new Object[N]; //line 10
}
}
你试图做的事情不起作用。一个'Object []'不是'入口者 []',所以你得到一个'ClassCastException'。看到这个问题:http://stackoverflow.com/questions/1817524/generic-arrays-in-java?rq=1 –
Jesper
也..请遵循标准的Java命名惯例 - 如果您想避免原始类型,请遵循标准的Java命名约定 - 例如 – TheLostMind