Вы можете написать статический метод в вашем перечислении, который соответствует и возвращает значение записи перечисления.
public enum SomeEnum {
SOME_VALUE("someValue"),
OTHER_VALUE("otherValue");
private final String camelCaseValue;
private static final SomeEnum[] values = values();
SomeEnum(String camelCaseValue) {
this.camelCaseValue = camelCaseValue;
}
public static SomeEnum fromCamelCase(String camelCaseValue) {
for (SomeEnum value : values) {
if(value.camelCaseValue.equals(camelCaseValue)) {
return value;
}
}
return SOME_VALUE;
}
}
Конечно, вам не нужно возвращать SOME_VALUE как значение по умолчанию. Вы можете вернуть ноль или сгенерировать исключение, если совпадений нет. Если отображение может быть закодировано динамически (например, удалить подчеркивание, а затем сравнить без учета регистра), вам даже не нужно сохранять поле camelCaseValue.
Я просто хотел показать общую идею использования статического метода для получения записи enum.