如何在switch语句中使用String枚举?

时间:2015-04-11 06:21:13

标签: java enums switch-statement

public class TestingGen {

    /**
     * @param args
     */

    public enum Types {

        TYPE1("TYPE1"), TYPE2("TYPE2");

        private String type;

        private Types(String type) {
            this.type = type;
        }

        public String getType() {
            return type;
        }
    }

    public static void main(String[] args) {

        String value = null;
        switch (value) {
        case Types.TYPE1.getType():
            System.out.println("here");
            break;
        case Types.TYPE2.getType():
            System.out.println("there");
        default:
            System.out.println("default");
        }
    }

}

它在case语句和#34; case表达式上显示错误必须是常量表达式"。

如何在swtich语句中使用String枚举?

2 个答案:

答案 0 :(得分:2)

反过来说。获取字符串Types enumValue = Types.valueOf(stringValue)的枚举值,然后启用枚举值switch(enumValue) { case TYPE1: [...]

答案 1 :(得分:-1)

公共类TestingGen {

/**
 * @param args
 */

public enum Types {

    TYPE1("TYPE1"), TYPE2("TYPE2");
     String type = null;

    Types(String s) {
        type = s;
    }

     String getType() {
        return type;
    }
}

public static void main(String[] args) {

    for(Types value : Types.values()) { 
        System.out.println(value + "  " + value.getType() + " ");
     }

}

}