java - 在 Java 中访问嵌套对象的数组

标签 java arrays nested-class

在网上搜索了很多论坛后,我已经有一段时间没弄明白了。

我在文件 A.java 中有一个类 A 和一个嵌套类 B 文件 C.java 中的另一个 C 类

现在我在类 A 中声明了一个对象 B 的数组,但我既不能访问也不能初始化类 A 或类 C 中的数组元素。

public class A{
    public B b[] = new B[15]; //compiles
    b[0] = new B(); //does not compile
    // b[0] = this.new B(); //does not compile either

    public class B{
    }

}

现在在 C 类中,如果我执行以下操作:

public class C{
A a = new A(); //compiles
a.b[0] = a.new A.B(); //does not compile
}

有人可以帮忙吗?我想我在尝试访问嵌套实例数组时在语法上犯了一些基本错误。谢谢!

最佳答案

您不需要使用A 来访问B 类构造函数。您已经在 A 类实例上访问它。只需将您的声明更改为:

a.b[0] = a.new B();

引用:

当然,该赋值必须在某些方法、构造函数或初始化器中。你不能像那样直接在类中使用语句。 A 类中的作业也存在同样的问题。

因此,您应该将类​​ C 更改为如下内容:

class C {
    A a = new A(); //compiles

    {
        a.b[0] = a.new B(); 
    }
}

关于java - 在 Java 中访问嵌套对象的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18628508/

相关文章:

Java:静态嵌套类和反射: "$"与 "."

c# - 可以使用break进行外循环吗?

Java - 关闭事件窗口

java - 如何在Java中的匹配中获取名为捕获组的正则表达式的名称?

PHP数组输出到列表

arrays - 加快我的字符串文本替换代码

c - 多维数组C

java - Java 中的嵌套类可以继承最终封闭类吗?

wpf - DataTemplate 可以绑定(bind)到嵌套类吗?