Определите ваше перечисление, как показано ниже:
enum NAMES {
ONE, TWO, THREE, FOUR, FIVE
}
static final
являются незаконными модификаторами при использовании вместе с объявлением перечислений.Также убедитесь, что константы определены только в верхнем регистре.
Затем используйте его, используя:
public static void main(String[] args) {
String myStr = "something";
switch (NAMES.valueOf(myStr)) {
case ONE:
break;
case TWO:
break;
// the rest
default:
break;
}
}
Альтернативно, вы можете создать статический метод для извлечения результата из enum
enum NAMES {
ONE, TWO, THREE, FOUR, FIVE;
public static NAMES fetchValue(String constant) {
NAMES name = null;
for (NAMES num : EnumSet.allOf(NAMES.class)) {
if (num.name().equals(constant)) {
name = NAMES.valueOf(constant);
}
}
return name;
}
}
И вызовите его, используя:
NAMES names = NAMES.fetchValue("ONE");
В этом подходе, даже если константа не найдена, код не сломается.