私は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);
}
ハックなソリューションは大歓迎です!