【问题标题】:Unable to create array of inner class [duplicate]无法创建内部类数组[重复]
【发布时间】:2025-12-11 18:00:01
【问题描述】:
我是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
【问题讨论】:
标签:
java
arrays
inner-classes
【解决方案1】:
当您创建一个数组时,您不会创建元素类型的实例,您只需创建一个包含 null 引用的数组,因此您可以像创建任何数组一样创建它(不管元素类型是内部类) :
Tree.Node[] A = new Tree.Node[10];
当你初始化数组的一个元素时,你创建了一个内部类的实例,它需要一个封闭的类实例:
A[0] = test.new Node ();
【解决方案2】:
此代码行:
Tree.Node[] A = test.new Node[10];
无效,您可能对仅创建实例的语法感到困惑
Tree.Node fooA = test.new Node();
你要做的事情必须写成:
Tree.Node[] A = new Tree.Node[10];
这是在java中声明内部类数组的正确方法