场景问题: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;
}
// ……
}