如何在Java中执行此操作 - 将子类型集合传递给需要基类型集合的方法?
以下示例给出:
The method foo(Map) is not applicable for the arguments (Map )
我可以通过为类型化集合创建类层次结构来实现 - 但是否则可能呢?
public void testStackOverflow() { class MyList extends AbstractList { public Object get(int index) { return null; } public int size() { return 0; } }; MapbaseColl = null; Map subColl = null; foo (subColl); } private void foo (Map in) { }
编辑:从答案中得出结论,这需要"有界通配符",因此添加此文本以进行搜索
更改foo
到:
private void foo(Mapin) { }
这将限制你可以做的事情foo
,但这是合理的.您知道从地图中获取的任何值都是列表,但您不知道将哪种值放入地图有效.