在從java.util.HashMap
下面的語法,通用型參數用於類型強制轉換實例化一個原始類型陣列後,從原始型投射到一般類型
Node<K,V>[] newTab = (Node<K,V>[])new Node[newCap];
類似的代碼不與類似的語法編譯here (如下圖所示),給錯誤:Type safety: Unchecked cast from Node[] to Node<K,V>[]
public class NestedInterfaceInInterface {
public static void main(String[] args) {
Node<K,V>[] newTab = (Node<K,V>[])new Node[10];
//Node<String,String>[] newTab = (Node<String,String>[])new Node[10]; // this works
}
}
1)怎樣解決這個問題?
2)語法Node<K,V>[] newTab = (Node<K,V>[])new Node[10];
與Node<String,String>[] newTab = (Node<String,String>[])new Node[10];
有什麼不同?
您不能實例化通用數組類型。因此,他們使用原始類型並投射它。 –
[this]的可能重複(http://stackoverflow.com/questions/14917375/cannot-create-generic-array-of-how-to-create-an-array-of-mapstring-obje)問題。 – bcsb1001
@ bcsb1001你認爲這是重複的問題嗎? – overexchange