Lim*_*ent 0 java constructor variable-initialization constructor-chaining
以下代码有错误:
class A
{
private final String val;
public A(){
this.val = null;
}
public A(String val){
this();
this.val = val;
}
}
Run Code Online (Sandbox Code Playgroud)
错误是“可能已经分配了变量 val
是否有解决此错误的方法,而无需重新编写可能在默认构造函数中的任何代码?这是一个最小的工作示例;如果你问自己“默认构造函数中有哪些代码”,请记住,一个真实的例子可能有很多你不想在其他构造函数中重复的代码(分配其他最终变量等)。
还请记住,这是一个最小的例子,同样的问题存在于大量的构造函数中。
你在错误的方向链接。这也花了我一段时间才弄清楚,但是像这样改变你的例子:
class A
{
private final String val;
public A(){
this(null);
}
public A(String val){
this.val = val;
}
}
Run Code Online (Sandbox Code Playgroud)