2017-06-20 49 views
0
@Override 
    public <E extends Enum<E>> E getValue(){ 
     return (E) super.getValue(); 
    } 

爲什麼這個重寫不起作用? Idea返回的錯誤是兩種方法都有相同的擦除,但它們並不互相覆蓋。不能覆蓋Vaadin ComboBox的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

回答