为什么我不能在java的switch语句中添加其他类的常量?
我有一节课
public class Game {
static class GameMode {
public static final GameMode SURVIVAL = new GameMode();
public static final GameMode ADVENTURE = new GameMode();
public static final GameMode GOD = new GameMode();
}
GameMode CurrentMode = GameMode.GOD;
}
但当我定义switch语句时,它会给我一个错误:
void OnGame(){
switch (CurrentMode){
case GameMode.GOD: // case expressions must be constant expressionsJava(536871065)
System.out.println("Player On God Mode");
break;
case GameMode.SURVIVAL: // case expressions must be constant expressionsJava(536871065)
System.out.println("Player On Survival Mode");
break;
case GameMode.ADVENTURE: // case expressions must be constant expressionsJava(536871065)
System.out.println("Player On Adventure Mode");
break;
}
}
这让我很困惑.生存、冒险和god 模式都是不变的,我在前面加上"final",为什么我不能在switch语句中使用它呢?