Enum 类型中的 valueOf(Class<T>, String) 方法不适用于参数 (Class<Enum<T>>, String)

tpc*_*iro 1 java generics enums class

我不知道我做错了什么......在构造函数中,我想接收一个枚举类,并且当一个值作为参数传递给 convert() 时,我想返回正确的枚举。

public final class EnumSimplesConverter<T extends Enum<T>> {
    private final Class<Enum<T>> enumClass;

    public EnumSimplesConverter(Class<Enum<T>> enumClass) {
        this.enumClass = enumClass;
    }

    public Enum<T> convert(String value) throws TypeConverterException {
        return Enum.valueOf(this.enumClass, value);
    }
}
Run Code Online (Sandbox Code Playgroud)

但它给了我关于“valuesOf()”的错误:
“枚举类型中的方法 valueOf(Class, String) 不适用于参数 (Class<Enum>, String)”

Eug*_*ene 5

更改类型和构造函数:

private final Class<T> enumClass;

public EnumSimplesConverter(Class<T> enumClass) {
    this.enumClass = enumClass;
}
Run Code Online (Sandbox Code Playgroud)

你已经强制执行T通过T extends Enum<T>