[英]How to create a fixed size array of a generic type in Java?
我有这段代码,该错误提示我“无法创建BST_Node的通用数组”
BST_Node<Integer>[] arrayTree = new BST_Node<Integer>[treeSize];
我不知道为什么,因为我有
Integer[] arrayTree = new Integer[treeSize];
而且效果很好。 为什么它不能用泛型创建固定大小的数组,正确的方法是什么?
数组不是通用的。 这就是为什么在编译以及运行时都检查数组的原因,因为Collections可以是通用的,并且仅在编译时才对其进行检查。 因此,当您声明通用数组时,您必须这样做:
BST_Node<Integer>[] arrayTree = (BST_Node<Integer>[]) new BST_Node[treeSize];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.