gpt4 book ai didi

java - 在java构造函数中初始化final变量

转载 作者:行者123 更新时间:2023-12-01 17:58:15 26 4
gpt4 key购买 nike

假设我遇到了这样的情况。

private final A a;
private final B b;
private final C c;
private ClassX(){
this.c = createCSomehow();
}
public ClassX(A a){
this();
this.a = a;
this.b = null;
}
public ClassX(B b) {
this();
this.b = b;
this.a = null;
}

为什么 Idea 会提示 a 和 b 属性?想法在它们下面划线并说:变量 a 可能尚未初始化。我确信我没有更多的构造函数,并且在每种情况下 a 都会填充一些值。

最佳答案

我真的不知道如何正确回答原因(需要 JLS 调查),但对于如何,应该编译以下内容:

private final A a;
private final B b;
private final C c = createCSomehow();

public Main(A a){
this.a = a;
this.b = null;
}

public Main(B b) {
this.b = b;
this.a = null;
}

关于java - 在java构造函数中初始化final变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42926666/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com