在从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