@Override
public <E extends Enum<E>> E getValue(){
return (E) super.getValue();
}为什么这样做不起作用呢?这个想法正在返回的错误是,这两种方法具有相同的擦除,但它们并没有相互覆盖。
编辑:
无法重载每个重载的形式参数类型为同一原始类型的方法
类不能有两个重载的方法,它们在类型擦除后具有相同的签名。
public class Example {
public void print(Set<String> strSet) { }
public void print(Set<Integer> intSet) { }
}重载将共享相同的类文件表示,并将生成编译时错误。
来源:https://docs.oracle.com/javase/tutorial/java/generics/restrictions.html#cannotOverload
发布于 2017-06-20 11:13:07
参数-类型在运行时被擦除。所以签名是一样的。
有关详细信息,请在这里查看one of the other solutions。
https://stackoverflow.com/questions/44651230
复制相似问题