Получить экземпляр Enum из класса с использованием строкового значения?

Мне сложно сформулировать точный вопрос, поэтому я просто приведу пример.

У меня два типа 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 .)

Спасибо!

24
задан Craig Otis 20 July 2011 в 21:41
поделиться