私は何かと少し混乱しています。
コレクションではないクラスがありますが、ジェネリック オブジェクトを参照しています。
public class XClass<E extends AnInterface>{
E instanceobject;
public void add(E toAdd){}
}
public interface AnInterface{}
public class A implements AnInterface{}
public class B implements AnInterface{}
<? extends AnInterface>
ジェネリックオブジェクトに複数のサブタイプタイプが同時に必要な場合は、(XClassのインスタンスを宣言するときに)使用される場所を読んだと思います<T extends AnInterface>
が、ジェネリッククラスには単一のタイプのサブタイプしか持てません一気に?
ただし、次のものを使用できます。
XClass<AnInterface> xc = new XClass<AnInterface>();
A a = new A();
B b = new B();
xc.add(a);
xc.add(b);
このようにして、スーパータイプの複数のサブタイプをジェネリック クラスに渡すことができます......
「?」を使用する目的がわかりません。インターフェイスをジェネリック パラメータとして使用することに何か問題がありますか?