Мне сложно помещать точный вопрос в слова, поэтому я просто приведу пример.
У меня есть два типа Enum
:
enum Shape {
CAT, DOG;
}
enum Color {
BLUE, RED;
}
У меня есть метод:
public Object getInstance(String value, Class<?> type);
Я хотел бы использовать метод, например:
// someValue is probably "RED", and someEnumClass is probably Color.class
Color c = getInstance(someValue, someEnumClass);
У меня возникли проблемы с определением того, как реализовать getInstance()
. Когда вы знаете точный класс Enum
, который вы хотите создать, легко:
Color.valueOf("RED");
Но как эта вышеприведенная строка может быть выполнена с неизвестным Class
? (Однако известно, что someEnumClass
является подклассом Enum
.)
Спасибо!