java - 在这种情况下如何正确调用构造函数?

标签 java constructor field

我试图调用一个构造函数来正确处理 3 个不同的类,但我无法做到这一点

public class B {

private final A a;

public B(A a) {
     this.a = a;
}
private final C c = new C(a);
}

我遇到错误“变量 a 可能尚未初始化”,我知道一种方法可以通过在 B 构造函数中添加第二个参数并在主类 B 中调用它来实现此目的,但是还有其他方法吗?

最佳答案

当然。

public class B {

    private final A a;

    public B(A a) {
        this.a = a;
        c = new C(a);
    }
    private final C c;
}

你的方法不起作用的原因是声明时的初始化程序在构造函数之前执行。

关于java - 在这种情况下如何正确调用构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56400533/

相关文章:

java - 了解 Java 的 DOM 解析器

python - 从 __init__() 调用重写方法是否安全?

java - 使用 Java 库从 ODT 文档中提取字段

Java StringWriter toString 处的 StringBuilder 异常

Java IPv6 地址字符串到字节

java - 二维积分怎么解?

java - JavaFX 构造函数中的 SQLException

java - Java中的构造函数同步

c# - asp 页面变量不会持续存在吗?

mysql - 如何在 MySql 数据库中存储 boolean 值数组?