Java switch case 报错:case expressions must be constant expressions
遇到个小问题,使用switch case 时报错: case expressions must be constant expressions。平时使用java的switch case 时并没有过多在意其值的问题,今天一不留神就爆出之前不留意的问题,由此也说明:问题无大小,一直没有出现问题的技术点,并不一定是已经完全掌握的技术点。以后学习开发中切记。
问题如下:
声明的的变量:
public static int MENU_LEVEL_TOP = 0;//处于IDLE界面
public static int MENU_LEVEL_ONE = 1; //处于一级菜单状态
public static int MENU_LEVEL_TWO = 2; //处于二级菜单状态
public static int MENU_LEVEL_THREE = 3;//处于三级菜单状态
使用处:
switch(mCurrentMenuLevel){
case MENU_LEVEL_TOP:
break;
case MENU_LEVEL_ONE:
break;
case MENU_LEVEL_TWO:
break;
default:
break;
}
eclipse 在case处报错:case expressions must be constant expressions (CASE表达式必须是常量表达式)
根据报的错误,知道问题根源:case后面必须跟常量。
因此这个问题就比较好解决:将声明的变量声明为final。
更改如下:
public static final int MENU_LEVEL_TOP = 0;//处于IDLE界面
public static final int MENU_LEVEL_ONE = 1; //处于一级菜单状态
public static final int MENU_LEVEL_TWO = 2; //处于二级菜单状态
public static final int MENU_LEVEL_THREE = 3;//处于三级菜单状态