从默认构造函数中调用带有参数的构造函数时会出错,但是直接从默认构造函数中调用getText()方法可以正常工作。
我怀疑它与构造函数的调用顺序有关。
public enum Const {
VALUE1,
VALUE2;
private final String text;
Const() {
//this(getText()); --> gives error - Cannot reference Const.getText before super type constructor has been called in enum
this.text = getText();
}
Const(final String text) {
this.text = text;
}
private String getText() {
return "x";
}
}
答案 0 :(得分:0)
如果要使用this()链接构造函数。它应该是构造函数主体的第一行。
Const() {
this(param1);
//Rest of the code...
}