java在初始化第二个构造函数中的最后一个变量时遇到问题
我试图在我的类中使用2个构造函数,通过使用第一个构造函数来设置第二个构造函数,但这样做会导致错误,“空白的最终字段值可能尚未初始化”,即使我在第一个构造函数中没有得到错误。这是我的密码:
public class Token implements IToken {
private static int counter = 0;
private final int ID;
private TokenState state;
private final int VALUE;
private org.newdawn.slick.geom.Vector2f pos;
public Token (TokenState state, int value, Vector2f pos ) {
ID = counter;
this.VALUE = value;
this.state = state;
this.pos = pos;
counter++ ;
}
public Token (int value) {
new Token(TokenState.DEFAULT, value, new Vector2f() );
ID = counter;
counter++;
}
问题在于它是一个最终变量吗。如果是,为什么
# 1 楼答案
您面临的另一个问题是“ID”变量声明为“final”,这意味着无法在两个不同的区域初始化 删除final关键字或初始化它一次