用下面的Java代碼,有沒有辦法在第二級?:結合深泛型集合
public class Tester {
interface Base{};
class A implements Base{}
class B implements Base{}
@Test
public void test(){
Map<String, List<A>> a = new HashMap<String, List<A>>();
Map<String, List<B>> b = new HashMap<String, List<B>>();
Map<String, Base> bases = combine(a, b);
}
private Map<String, List<Base>> combine(Map<String, List<? extends Base>> one, Map<String, List<? extends Base>> two) {
Map<String, List<Base>> bases = new HashMap<String, List<Base>>();
bases.putAll(one);
bases.putAll(two);
return bases;
}
}
的問題是,聯合收割機()方法將不匹配Map<String, List<A>>
與相關泛型參數集組合到Map<String, List<? extends Base>>
即使延伸基地和bases.putAll()
不會接受類型的Map<String, List<? extends Base>>