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

我不知道我做错了什么......在构造函数中,我想接收一个枚举类,并且当一个值作为参数传递给 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);
    }
}

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

回答

更改类型和构造函数:

private final Class<T> enumClass;

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

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


以上是Enum类型中的valueOf(Class&lt;T&gt;,String)方法不适用于参数(Class&lt;Enum&lt;T&gt;&gt;,String)的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>