如何在Java中创建泛型类型的固定大小数组?

Ali*_*_IT 1 java arrays generics

我有这个代码,它给我一个错误,"无法创建一个BST_Node的通用数组"

    BST_Node<Integer>[] arrayTree = new BST_Node<Integer>[treeSize];
Run Code Online (Sandbox Code Playgroud)

我不知道为什么,因为我有

    Integer[] arrayTree = new Integer[treeSize];
Run Code Online (Sandbox Code Playgroud)

它完美无缺.为什么它不能创建具有泛型类型的固定大小数组,这是正确的方法吗?

Phi*_*nov 7

BST_Node<Integer>[] arrayTree = (BST_Node<Integer>[]) new BST_Node[treeSize];
Run Code Online (Sandbox Code Playgroud)

您在运行时不知道类型参数,因此您不能创建通用数组,而只能创建rawtype-array.

请在此处此处查看全面的解释