我正在尝试将字符串(通常作为输入参数提供)与枚举字段匹配:
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一起)可以保证。