こういうジェネリックの使い方ってありなん? 初めて見た

class Hoge<T>{
  Hoge2<T> hoge
}
class Hoge2<T>{
  Hoge3<T> hoge
}
class Hoge3<T>{
  T hoge
}