public class InitialisingFields {
private final String a;
private final String b;
private final String c;
InitialisingFields(String a,String b){
this.a = a;
this.b = b;
}
InitialisingFields(String a,String b,String c){
this(a , b);
this.c = c;
}
public static void main(String[] args) {
InitialisingFields i = new InitialisingFields("A","B","C");
}
}
我想编写InitialisingFields(String a,String b,String c)
构造函数但它给我编译错误。
对于InitialisingFields(String a,String b)
,它说“空白的最终字段c可能尚未初始化”
&安培;
对于InitialisingFields(String a,String b,String c)
,它说“空白的最终字段c可能已经初始化”
我不想修改InitialisingFields(String a,String b)
并添加一个参数,因为它已被很多类使用,我将不得不重构大量的类。对于我的用例,我想使用这个类的对象带有附加参数。
答案 0 :(得分:3)
你应该反过来 - 有一个构造函数初始化所有字段并让其他字段用默认值调用它:
{{1}}