Я определил свои перечисления следующим образом.
public enum UserType {
RESELLER("Reseller"),
SERVICE_MANAGER("Manager"),
HOST("Host");
private String name;
private UserType(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
Какой самый простой способ получить пару ключ-значение из значений перечисления?
Карта вывода, которую я хочуcreate должен выглядеть следующим образом
key = Enum(example:- HOST)
value = Host
Определить карту, которую я хочу определить, это:
Map<String, String> constansts = new HashMap<String, String>();
Ответ: Что я сделал
Я создал универсальный метод для доступа к любомуПеречислите и измените значения с этого на карту.Я получил эту ИДЕЮ, сформировал фрагмент кода, найденный здесь, в любом другом потоке.
public static <T extends Enum<T>> Map<String, String> getConstantMap(
Class<T> klass) {
Map<String, String> vals = new HashMap<String, String>(0);
try {
Method m = klass.getMethod("values", null);
Object obj = m.invoke(null, null);
for (Enum<T> enumval : (Enum<T>[]) obj) {
vals.put(enumval.name(), enumval.toString());
}
} catch (Exception ex) {
// shouldn't happen...
}
return vals;
}
Теперь, после этого все, что мне нужно сделать, это вызвать этот метод со всеми конструкциями enum, и я Готово.
Еще одна вещь
Чтобы это сделать, я должен переопределить метод toString следующим образом
public String toString() {
return name;
}
Спасибо.