无法创建内部类的数组

时间:2017-08-03 06:22:03

标签: java arrays inner-classes

我是java的初学者。我想在类外的类中创建内部类的数组。但我不能像编译器显示错误'('预期。 帮助

Tree test = new Tree();
Tree.Node[] A = test.new Node[10];

错误

Tree.java:72: error: '(' expected
Tree.Node[] A = test.new Node[10];
                         ^
1 error

2 个答案:

答案 0 :(得分:1)

创建数组时,不创建元素类型的实例,只创建一个包含null引用的数组,因此您可以像创建任何数组一样创建它(无论元素类型是否为内部类):

Tree.Node[] A = new Tree.Node[10];

初始化数组元素时,需要创建内部类的实例,这需要一个封闭的类实例:

A[0] = test.new Node ();

答案 1 :(得分:0)

此代码行:

Tree.Node[] A = test.new Node[10];

无效,您可能会对仅创建实例的语法感到困惑

Tree.Node fooA = test.new Node();

您要做的事情必须写成:

Tree.Node[] A = new Tree.Node[10];

这是在java

中声明内部类数组的正确方法