私はJavaで次の階層を持っています:
interface ObserverA {}
interface A {
void method1();
addObserver(Observer o);
}
そして、私はそれを次のように拡張したいと思います:
interface ObserverB extends ObserverA{}
interface B extends A {
void method2();
addObserver(ObserverB o);
}
のaddObserver()メソッドがBの同じメソッドをオーバーライドするような方法でA。そのままでは機能しないため、 の実装では のB両方のバージョンを実装する必要がありますaddObserver()。1 つだけにしたくありません。
Aこれは、次のようにパラメータ化する必要のない巧妙な方法で行うことができますか?
interface A<O extends Observer> {
addObserver(O o);
}
ハックなソリューションは大歓迎です!