Построение Enum из String с использованием отражения - PullRequest
3 голосов
/ 21 июня 2011

У меня есть метод, который принимает Enum.Скажем, метод - это methodName (MyTypes), где MyTypes находится внутри другого класса.Data{ enum MyTypes{ Id, Value.... } }

Я хочу вызвать этот метод динамически.Чтобы вызвать это, я должен создать эмулятор типа MyTypes из входной строки.Входная строка скажем, например, MyTypes.Value.Как динамически построить экземпляр enum из этой строки и передать метод?

Когда я выполняю method.getGenericParameterType (), он возвращает мне что-то вроде этого [class packagename.Data $ MyTypes]

для использования этих двух вещей требуется общий тип и строковое значение, как создать перечисление?

Заранее спасибо.

Ответы [ 3 ]

5 голосов
/ 21 июня 2011

Вы имеете в виду?

String text = 
MyType myType = MyType.valueOf(text);
4 голосов
/ 21 июня 2011

Примерно так: проанализируйте строку, чтобы получить имя класса "MyTypes", затем получите фактический объект класса, используя Class.forName(String), затем получите значение перечисления, используя static Enum.valueOf(Class,String)

1 голос
/ 21 июня 2011

Есть ли причина, по которой вы хотите использовать отражение? Не достаточно ли метода valueOf?

Взгляните на это .

...