は私がBuilder
タイプまたはそのサブタイプのパラメータを汎用化することができ、親クラスBuilder
を持っていますBuilderChild
インスタンスのメソッドdoSmth
を呼び出すことができ、BuilderChild
を返します。総称化クラスと継承の問題
new BuilderChild().doSmth().doSmthElse();
しかし、BuilderChild
を集計しようとすると、上記の行がコンパイルされなくなりました。
class BuilderChild<T> extends Builder<BuilderChild> {
BuilderChild doSmthElse() {
System.out.println("do smth else");
return this;
}
}
...
//Compile error, because doSmth()
//returns Builder instead of BuilderChild.
new BuilderChild().doSmth().doSmthElse();
doSmth()
私はBuilderChild
を汎用化した後Builder
を返し始めた理由誰かが説明できますか?それを修正する方法はありますか?