11/10に開催されたJJUG CCC 2012 Fallでジェネリクスについてセッションを行いました。 このエントリはセッション内容を補足するものです。基礎的な内容は Javaジェネリクス再入門 - プログラマーの脳みそ ジェネリックな設計 基礎編 - プログラマーの脳みそ などを参照してください。 再帰的ジェネリクス public class Hoge<T extends Hoge<T>> このように、型変数Tに対して境界を宣言したクラスHoge自身にした型変数をもつかたちを指して再帰ジェネリクス・再帰的ジェネリクスなどと呼びます。 このような型変数Tはパラメータ化された型として変数宣言に用いようとすると Hoge<?> hoge; といったようにワイルドカードを用いないと宣言できません。また、newによって型をバインドしようとしても型をバインドすることができません。 再帰的な型変数を