Я хочу получить экземпляр типа enum, чтобы:
String enumString="abc"; MyClass.MyEnum enumType=Class.forName("com.MyClass.MyEnum."+enumString);
Это дает мне необратимые типы.
Enum.valueOf сделает это, но довольно требовательно к его типу.Убедитесь, что вы разыгрываете Class на Class<? extends Enum>.Пример:
Class
Class<? extends Enum>
enum Foo { BLAT, BLARG }; System.out.println(Enum.valueOf((Class<? extends Enum>)Class.forName("Foo"), "BLARG"));
Посмотрите на Enum.valueOf (Класс enumType, Имя строки).
Вы ищете MyClass.MyEnum.valueOf(enumString).Нет необходимости полностью определять класс в строке.
MyClass.MyEnum.valueOf(enumString)