このパターンをどこかで見ました:
class A extends B<A> {
}
この構造は、ジェネリックの実際の型として新しい型を指定することによってジェネリックを拡張するのは少し珍しいです。用途は何ですか?このパターンに名前はありますか?代替パターンはありますか?
例: https://code.google.com/p/selenium/wiki/LoadableComponent
ジャンプ先:public class EditIssue extends LoadableComponent<EditIssue> {
編集:応答を読んだ後、コンパイラによる型チェックの理解を変える必要があるようです。私の心の奥底では、このパターンに対する私の不満は、2 つの A が同じである必要がある場合、それらを繰り返さないようにする方法はありますか? ということでした。しかし、派生クラスの型を親に伝播するより良い方法はないようです。