ジェネリックは、奇妙なことにextends
、インターフェイスにも使用されます。1使用したいもの:
public class Foo<T extends SomeInterface>{
//use T as you wish
}
これは実際には実装の要件であり、true/false チェックではありません。
true/false チェックの場合は、unbounded generics( class Foo<T>{
) を使用し、 a を取得しClass<T>
て、refiable 型を取得していることを確認します。
if(SomeInterface.class.isAssignableFrom(tClazz));
ここtClazz
で、 は type のパラメーターですjava.lang.Class<T>
。
再定義可能な型のパラメーターを取得した場合、それは次のとおりです。
if(tParam instanceof SomeInterface){
しかし、これはジェネリック宣言だけでは機能しません。
1クラスと複数のインターフェースを拡張する必要がある場合は、次<T extends FooClass & BarInterface & Baz>
のように実行できます。クラス (Java には多重継承がないため、1 つだけ) を最初に配置し、その後のインターフェースを任意の順序で配置する必要があります。