以下代码有错误:
class A
{
private final String val;
public A(){
this.val = null;
}
public A(String val){
this();
this.val = val;
}
}
错误是“可能已经分配了变量val
是否有解决此错误的方法而不重写可能在默认构造函数中的任何代码?这是一个最低限度的工作示例;如果你问自己“默认构造函数中的代码是什么”,请记住,一个真实的例子可能有很多代码,你不想在其他构造函数中重复(分配其他最终变量等)。
还请记住,这是一个最小的例子,大量的构造函数存在同样的问题。
答案 0 :(得分:2)
你的方向错误。这花了我一段时间才弄明白,但改变你的例子是这样的:
class A
{
private final String val;
public A(){
this(null);
}
public A(String val){
this.val = val;
}
}