我有点困惑。
我有一个类,它不是一个集合,但它确实引用了通用对象:
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);
这样我就可以将 Supertype 的多个子类型传递给泛型类......
我没有看到使用“?”的目的。使用接口作为通用参数有什么问题吗?