0

以下代码有错误:

class A
{

  private final String val;

  public A(){
    this.val = null;
  }

  public A(String val){
    this();
    this.val = val;
  }
}

错误是“可能已经分配了变量 val

是否有解决此错误的方法,而无需重新编写默认构造函数中可能存在的任何代码?这是一个最小的工作示例;如果您问自己“默认构造函数中有哪些代码”,请记住,一个真实的示例可能包含大量您不想在其他构造函数中重复的代码(分配其他最终变量等)。

还请记住,这是一个最小的例子,同样的问题存在于大量的构造函数中。

4

1 回答 1

5

你在错误的方向链接。我也花了一段时间才弄清楚,但是像这样改变你的例子:

class A
{

  private final String val;

  public A(){
    this(null);
  }

  public A(String val){
    this.val = val;
  }
}
于 2012-09-06T18:55:07.003 回答