如何切换枚举字段?

时间:2017-04-15 15:10:36

标签: java enums switch-statement

我正在尝试将字符串(通常作为输入参数提供)与枚举字段匹配:

public class Main {
    public static void main(String[] args) {
        String input = "AlternativeName1";

        switch (input) {
            case Algorithm.ALG1.alternativeName:
                break;
            case Algorithm.ALG2.alternativeName:
                break;
        }
    }

    public enum Algorithm {
        ALG1("AlternativeName1"),
        ALG2("AlternativeName2");

        public final String alternativeName;

        Algorithm(String alternativeName) {
            this.alternativeName = alternativeName;
        }
    }
}

编译器抱怨它希望在' case'之后有一个常量表达式。声明,但我认为它不会比public final String更加稳定。

那么如何根据预定义的枚举字段列表检查输入字符串?

我可以想到一个等效的if语句,但我想确保始终检查所有定义的枚举成员,这是什么'切换' (与Intellij一起)可以保证。

0 个答案:

没有答案