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


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JerryHe

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值