gpt4 book ai didi

java - 创建单例管理器时无法对非静态字段进行静态引用

转载 作者:行者123 更新时间:2023-12-01 04:52:47 25 4
gpt4 key购买 nike

public class GameManager {
private static GameManager INSTANCE;

private final int INITIAL_SCORE = 0;

private int mCurrentScore;

GameManager(){
}

public static GameManager getInstance(){
if(INSTANCE == null){
INSTANCE = new GameManager();
}
return INSTANCE;
}

public int getCurrentScore(){
return mCurrentScore;
}

public void incrementScore(int pIncrementBy){
mCurrentScore += pIncrementBy;
}

public void resetGame(){
mCurrentScore = GameManager.INITIAL_SCORE;
}
}

我在eclipse中运行上面的代码。我想知道为什么 eclipse 在将 GameManager.INITIAL_SCORE 的值分配给 mCurrentScore 时告诉我“无法对非静态字段 GameManager.INITIAL_SCORE 进行静态引用”。 mCurrentScore 不是静态的,是吗?如果 mCurrentScore 不是静态的,为什么我要把 INITIAL_SCORE 声明为静态的?

最佳答案

当你为变量添加类名前缀时,你就是在告诉 Java 该变量是静态的。由于该变量不是静态的,因此会出现错误。代码应为:

public void resetGame(){
mCurrentScore = INITIAL_SCORE;
}

关于java - 创建单例管理器时无法对非静态字段进行静态引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14669522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com