场景问题:case后面必须跟常量,自定义的变量无法赋予,如果使用枚举也会出现同样的问题。
//定义枚举
public enum TestEnum{
TEST("index",1);
public String index;
piblic int value;
//构造方法
TestEnum(String index,int value){
this.index = index;
this,value = value;
}
//定义get方法
public int getValue(){
return value;
}
//关键方法,此方法确定常量的唯一性,保证switch不会报错
public static TestEnum getByValue(int value){
for(TestEnum testEnum : values()){
if(testEnmu.getValue() == value){
return testEnum;
}
}
return null;
}
}
//定义switch方法
switch(TestEnum.getByValue()){
case TEST:
// ……
break;
}
//定义业务方法
public Integer getTest(String str){
if(str.equals(TestEnum.TEST.index)){
return TestEnum.TEST.value;
}
// ……
}

文章讨论了在Java中,case语句后面必须跟随常量的问题,指出自定义变量和枚举值在switch中可能遇到的挑战。枚举类型`TestEnum`被用作示例,包含构造方法和获取值的方法,但即使如此,在switch语句中直接使用枚举值仍然会导致错误。同时,文章提供了一个业务方法`getTest`,该方法检查字符串是否等于枚举的索引值。
8383

被折叠的 条评论
为什么被折叠?



