estoy tratando de hacer lo siguiente:¿Cómo obtengo el valor de un Enum, si no conozco la clase en el momento de la compilación?
Class<?> cls = unknownClass;
if(cls.isEnum()){
@SuppressWarnings("unchecked")
Class<? extends Enum<?>> enumClass = (Class<? extends Enum<?>>) cls;
Object val = Enum.valueOf(enumClass, "NAME1");
}
Pero me sale el siguiente error:
Bound mismatch: The generic method valueOf(Class<T>, String) of type Enum<E> is
not applicable for the arguments (Class<capture#5-of ? extends Enum<?>>, String).
The inferred type capture#5-of ? extends Enum<?> is not a valid substitute for
the bounded parameter <T extends Enum<T>>
Puede alguien decirme lo que estoy haciendo mal?
que no funciona (o es sólo mi compilador)?:) – dacwe
@dacwe: Bueno, funciona en el compilador * my *, pero no has dicho de qué * manera * no funciona. Mostraré un ejemplo breve pero completo ... –
Ah, lo siento, no compila. 'Clase > cls = SomeEnum.class; Objeto val = Enum.valueOf (cls, "NAME1"); 'y obtengo un' Bound mismatch' simular como asker. – dacwe