Бросив это туда, не найдя решения этой проблемы.Я придумал свой собственный стиль, если он интересует любого, кто сталкивается с этим.Не стесняйтесь добавлять свои собственные решения, если вы найдете другой способ.
Я реализовал в своих перечислениях, чтобы исправить эту проблему, было добавить метод findByType, который позволяет вам искать в строковом представлении значения ключа перечисления,Итак, в вашем примере у вас есть перечисление с парой ключ / значение как таковое,
pubilc enum MyEnum {
...
CHIEN("chien", "Chien mechant")
...
}
// Map used to hold mappings between the event key and description
private static final Map<String, String> MY_MAP = new HashMap<String, String>();
// Statically fills the #MY_MAP.
static {
for (final MyEnum myEnum: MyEnum.values()) {
MY_MAP.put(myEnum.getKey(), myEnum);
}
}
, и тогда у вас будет открытый метод findByTypeCode, который будет возвращать тип для ключа, по которому вы ищете:
public static MyEnum findByKey(String pKey) {
final MyEnum match = MY_MAP.get(pKey);
if (match == null) {
throw new SomeNotFoundException("No match found for the given key: " + pKey);
}
return match;
}
Надеюсь, это поможет.Как я уже сказал, может быть, существует решение, которое занимается этим напрямую, но я не нашел его и не нужно тратить больше времени на поиск решения, когда оно работает достаточно хорошо.