相关疑难解决方法(0)

如果我在编译时不知道该类,如何获取Enum的值?

我正在尝试执行以下操作:

Class<?> cls = unknownClass;
if(cls.isEnum()){
    @SuppressWarnings("unchecked")
    Class<? extends Enum<?>> enumClass = (Class<? extends Enum<?>>) cls;
    Object val = Enum.valueOf(enumClass, "NAME1");
}
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

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>>   
Run Code Online (Sandbox Code Playgroud)

有人能告诉我我做错了什么吗?

java generics reflection enums

19
推荐指数
3
解决办法
8201
查看次数

标签 统计

enums ×1

generics ×1

java ×1

reflection ×1