1
我已經創建了通用的陣列,但構造函數不能初始化數組。運行時程序拋出此異常時的Java通用陣列運行初始化錯誤
Exception in thread "main" java.lang.RuntimeException:
Uncompilable source code - generic array creation
如何正確初始化通用數組。
class MyList<K,V>{
K[] k;
V[] v;
public MyList() {
k = new K[0];
v = new V[0];
}
public void add(K key, V val){
Object[] ob1 = new Object[k.length+1];
Object[] ob2 = new Object[v.length+1];
for (int i = 0; i < k.length; i++) {
ob1[i]=k[i];
ob2[i]=v[i];
}
ob1[k.length]=key;
ob2[v.length]=val;
k=(K[]) ob1;
v=(V[]) ob2;
}
public static void main(String[] args) {
MyList<Integer,Double> values = new MyList<>();
values.add(1,0.5);
}
}
爲什麼會發生這種情況,有沒有解決辦法?
不能使用映射(HashMap的)用於此目的,而不是實現一個新的通用陣列? –
經典問題,C++和Java程序員區分:是否可以寫'K K =新K()'模板/仿製藥方面? – Arkadiy