不能覆盖Vaadin ComboBox的getValue()方法

时间:2017-06-20 11:01:43

标签: java override

  @Override
    public <E extends Enum<E>> E getValue(){
        return (E) super.getValue();
    }

为什么这个压倒一切不起作用? Idea返回的错误是两个方法都有相同的擦除但它们没有相互覆盖。

修改

无法重载每个重载的形式参数类型擦除到相同原始类型的方法

一个类不能有两个在类型擦除后具有相同签名的重载方法。

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

1 个答案:

答案 0 :(得分:1)

参数类型正在运行时被删除。签名是完全相同的。

点击此处one of the other solutions了解详细信息。