Java集合常见的两类超类型

时间:2015-04-10 21:04:34

标签: java generics

我试图创建一个方法,该方法将两个类AB的一些常见超类型的集合作为参数(然后添加A的实例和B到集合)。如下所示:

public <T, A extends T, B extends T> void foo(Collection<T> collection);

当然,这不起作用,因为Java在这里将A和B解释为类型参数,使具体类型AB蒙上阴影。由于我知道类型层次结构,因此我知道AB的最低共同祖先,比如C,并且可以只有:

public void foo(Collection<? super C> collection);

我宁愿不这样做,因为我很可能会改变类型层次结构,并希望foo尽可能通用。

0 个答案:

没有答案