gpt4 book ai didi

Java 泛型 - 将子类型集合传递给需要基类型集合的方法

转载 作者:搜寻专家 更新时间:2023-10-31 08:08:49 25 4
gpt4 key购买 nike

如何在 Java 中执行此操作 - 将子类型集合传递给需要基类型集合的方法?

下面的例子给出了:

The method foo(Map<String,List>) is not applicable for the arguments (Map<String,MyList>)

我可以通过为类型化集合创建类层次结构来实现 - 但是否有其他可能?

public void testStackOverflow() {

class MyList extends AbstractList {
public Object get(int index) {
return null;
}
public int size() {
return 0;
}
};

Map <String, List> baseColl = null;
Map <String, MyList> subColl = null;

foo (subColl);
}

private void foo (Map <String, List> in) {
}

编辑:从答案中可以看出这需要“有界通配符”,因此添加此文本以便于搜索

最佳答案

foo 更改为:

private void foo(Map <String, ? extends List> in) {
}

这将限制您在 foo 中可以执行的操作,但这是合理的。您知道从 map 中获取的任何值都将是一个列表,但您不知道可以将哪种值有效地放入 map 中。

关于Java 泛型 - 将子类型集合传递给需要基类型集合的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/298305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com