次のコードがあります。
public class AClass<X extends AnInterface> implements AnotherInterface {
public AClass(X x){
}
}
X
これをAnInterface
?? 確かに、それらは同じことを意味しAnInterface
ます。
すべてのパラメーター タイプをジェネリックとして保持し、「X extends AnInterface」などのジェネリック パラメトリック宣言でインターフェイス名のみに言及しようとしていますが、AnInterface タイプの渡された値が等しくないことを示しているため、問題が発生しています。タイプXに。
編集:
public void<X extends AnInterface> myMethod(){
AnInterface b = new ADiffClass();
AnotherInterface a = new AClass(b);
}
public class ADiffClass<X extends AnInterface> implements AnInterface {
public ADiffClass(){
}
}
ここで問題が発生します。b の型が AnInterface であり、AClass のコンストラクターで必要な型が X であるというコンパイル エラーが発生します。