作成中のプログラムのインターフェイスに問題が発生しました。自分のオブジェクトの型への参照を受信/返すメソッドの1つを持つインターフェースを作成したいと思います。それは次のようなものでした:
public interface I {
? getSelf();
}
public class A implements I {
A getSelf() {
return this;
}
}
public class B implements I {
B getSelf() {
return this;
}
}
インターフェイスへの参照を返したくないので、「?」の場合は「I」を使用できませんが、クラスを返します。検索したところ、Javaで「自己参照」する方法がないことがわかったので、その「?」を単に置き換えることはできません。「self」キーワードなどの例では。実際、私は次のような解決策を思いつきました
public interface I<SELF> {
SELF getSelf();
}
public class A implements I<A> {
A getSelf() {
return this;
}
}
public class B implements I<B> {
B getSelf() {
return this;
}
}
しかし、それは本当に回避策か何かのように思えます。そうする別の方法はありますか?