所以我通常知道要創建一個通用的數組,你可以這樣做:爪哇 - 創建一個對象的數組泛型參數
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