创建双通用数组 - Java

时间:2016-05-21 09:03:51

标签: java arrays generics casting

所以我正在尝试创建一个双通用类的数组,但由于某种原因它给了我一个错误。

代码:

Node<K, V>[] table = (Node<K, V>[]) new Object[10];

我收到以下错误:

  

线程“main”中的异常java.lang.ClassCastException:[Ljava.lang.Object;无法转换为[HashCache $ Node;

所以,我想知道为什么它会给我这个错误,我该如何解决它。

1 个答案:

答案 0 :(得分:6)

Object[] Node[] { - 1}} - 例如,您可以将Object[]的元素设置为"Hello Word",而Node[]则无法使用Node[] 1}}。 TL; DR,你应该创建一个Node<K, V>[] table = new Node[10];

{{1}}