У меня есть класс перечислимого, который выглядит следующим образом:Java непостоянных выражений в операторах коммутатора
public enum MyEnum {
VALUE1("value.1"),
VALUE2("value.2");
private String value;
private MyEnum(String value) { this.value = value; }
public String getId() { return id; }
}
Я хочу иметь переключатель заявление о значениях перечисления. Что-то вроде следующего:
switch (myString) {
case MyEnum.VALUE1.getId():
...
}
Я получаю следующую ошибку времени компиляции: выражения case должны быть постоянными выражениями.
Есть ли способ заставить это работать с заявлением enum и switch? Причина, по которой я добавил значения в перечисление, заключается в том, что я хочу, чтобы некоторые идентификаторы были с символом «.». и другие не разрешенные символы.
Так что некоторые Перечни имеют одинаковый идентификатор? –
Noe, вы можете использовать значения перечисления напрямую ('VALUE1') или использовать строки (« значение.1 »- требуется Java 7) или не использовать' switch' ('if (... getId.equals (. ..)) ' – zapl
Вы действительно хотите найти экземпляр enum с идентификатором? – Bohemian