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