java不兼容类型T无法转换为Enum

阿什什

该代码在eclipse中运行良好,但是在尝试在intellij IDEA中进行编译时出现以下错误

public class Sample{
   private Map<Class<Enum>, IConverter<? extends Enum<?>>> enumConverter = Maps.newHashMap();


public <T extends Enum<T>> T  getEnumAttribute(String key, final Class<T> ee){
    IConverter<T> e = (IConverter<T>)enumConverters.get(ee);
    if ( e == null ){
        e = new IConverter<T>() {
            @Override
            public String toString(T val) {
                return val.toString();
            }

            @Override
            public Class<T> getType() {
                return ee;
            }

            @Override
            public T fromString(String val) {
                return Enum.valueOf(ee, val);
            }
        };
        enumConverters.put((Class<Enum>) ee, e);
    }
    return getAttribute(key, e);
}

public static interface IConverter<T> extends Serializable{
    public  T fromString(String val);
    public String toString(T val);
    public Class<T> getType();
}     


}

代码在eclipse中编译良好,但在Eclipse中抛出错误

enumConverters.put((Class<Enum>) ee, e); 作为

Error:(521, 66) java: incompatible types: java.lang.Class<T> cannot be converted to java.lang.Class<java.lang.Enum>

我不确定发生了什么问题,我们将不胜感激。

安迪·特纳(Andy Turner)

一个Class<T extends Enum<T>>不是一个Class<Enum>,就像一个Class<String>不是一个Class<Object>List<T>不是一个List<Object>

将地图声明更改为:

private Map<Class<? extends Enum<?>>, IConverter<? extends Enum<?>>> enumConverter = Maps.newHashMap();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java 不兼容类型:T 无法转换为 My Class

通用类<T>中的Java通用Map <T,T>抛出不兼容的类型:T无法转换为T`错误

使用通用返回类型时出错(不兼容的类型:无法转换为T)

BlueJ错误:“不兼容的类型:无法将int转换为java.lang.String”和“不兼容的类型:java.lang.String无法被转换为int”

JAVA不兼容的类型:无法将对象转换为我的类型

JAVA:不兼容的类型:int无法转换为java.lang.String

不兼容的类型 - int 无法转换为 java.lang.string -java - bluej

不兼容的类型:无法在Android中将HomeFragment转换为Fragment

不兼容的类型:无法将视图转换为RadioButton

不兼容的类型:Single <HttpServer>无法转换为Completable

错误:类型不兼容:MainFragment无法转换为Activity

不兼容的类型:char []无法转换为CharSequence

错误:类型不兼容:String []无法转换为String

不兼容的类型:无法将视点转换为imageviewholder

错误:类型不兼容:消息无法转换为int吗?

错误:不兼容的类型:<anonymous OnTabSelectedListener> 无法转换为 BaseOnTabSelectedListener

错误:不兼容的类型:对象无法转换为 MyClass

不兼容的类型:片段无法转换为NavigationDrawerFragment

不兼容的类型:无法将对象转换为ParseObject

不兼容的类型:BigInteger无法转换为int

错误:类型不兼容:“某物”无法转换为“某物”

不兼容的类型:无法将对象转换为CoreLabel

不兼容的类型:FirebaseMessagingService无法转换为Context

错误:类型不兼容:char无法转换为String

错误:类型不兼容:Task <Uri>无法转换为Uri

不兼容的类型:FragmentDark无法在Android中转换为Fragment

不兼容的类型卡无法转换为字符串

错误:类型不兼容:无法将对象转换为char

JAVAFX错误不兼容的类型:FXMLLoader无法转换为节点