Generic クラス定義に複数の制約を追加できることはわかっています。たとえば、次のようになります。
class Example<I extends Object & Comparable<Object>>{}
しかし、型パラメーターとしてMyGeneric
別のジェネリック ( ) を取り、そのジェネリック (例)SomeGeneric<T>
の型パラメーター ( ) を制約するジェネリック ( ) が必要です。T
T extends SomeClass
重要なことに、クラス内からSomeGeneric
との両方の型を知る必要があります (両方をバインドする必要があります)。たとえば、次のようなものを想像してください。SomeClass
G
T
class MyGeneric<G extends SomeGeneric<T>, T extends SomeClass>
{
public G returnSomeGenericImpl(){}
public T returnSomeClassImpl(){}
}
質問: 上記は機能しますが、私のクラスの実装者の作業を楽にするために、私のクラスには型パラメーターが 1 つしかない方がよいと思います。これを行う方法はありますか?
このようなものがいいでしょう (しかし、この特定のコードは正しくありません):
class MyGeneric<G extends SomeGeneric<T extends SomeClass>>
{
public G returnSomeGenericImpl(){}
public T returnSomeClassImpl(){}
}
明確でない場合は、喜んで意図を明確にしようとします。