0
@Override
public <E extends Enum<E>> E getValue(){
return (E) super.getValue();
}
なぜこのオーバーライドは機能しませんか? Ideaが返すエラーは、両方のメソッドが同じ消去を持つが、互いにオーバーライドしていないということです。VaadinコンボボックスのgetValue()メソッドをオーバーライドできません
編集:
は、クラスは型消去した後、同じシグネチャを持っています2つのオーバーロードされたメソッドを持つことはできません同じ生タイプ
にそれぞれ過消去の仮パラメータ型メソッドをオーバーロードすることはできません。
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