Error处理:Java switch case 报错:case expressions must be constant expressions

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;//处于三级菜单状态


你可能感兴趣的:(Error处理:Java switch case 报错:case expressions must be constant expressions)