私はジェネリックを初めて使用します。次の問題で得られる助けをいただければ幸いです。
私はこの親クラスを持っています:
public class Parent<K, V> {
public void f(K key,V value){}
}
そして、私はこの子クラスを持っています:
public class Child<K,V> extends Parent<K,LinkedList<V>> {
@Override
public void f(K key,V value) {}
}
まあ、それChild.f
がオーバーライドされることを望んでいましParent.f
たが、残念ながらコンパイラはここで何が起こっているのか気に入らず、私に与えます:
Name clash: The method f(K, V) of type Child<K,V> has the same erasure as f(K, V) of type
Parent<K,V> but does not override it
このエラーは以前にさまざまなコンテキストで見たことがありますが、この特定のコンテキストでなぜ発生するのかわかりません。それを回避する方法はありますか?
前もって感謝します。