Java转换映射<;字符串,对象>;映射<;字符串,?gt;

Java转换映射<;字符串,对象>;映射<;字符串,?gt;,java,java-7,Java,Java 7,我使用的是JDK 7, 如何有效地将列表转换为列表 代码片段如下所示 List<Map<String, Object>> data = fetchData(qry, providedFiltersAndParams); List<Map<String, ?>> convertedData = new ArrayList<>(); for ( Map<String, Object> eachRow : data ) {

我使用的是JDK 7, 如何有效地将
列表转换为列表

代码片段如下所示

List<Map<String, Object>> data = fetchData(qry, providedFiltersAndParams);

List<Map<String, ?>> convertedData = new ArrayList<>();
for ( Map<String, Object> eachRow : data ) {
    convertedData.add(eachRow);
}
filler.fillData(convertedData);
List data=fetchData(qry,提供的过滤器和参数);
List convertedData=new ArrayList();
用于(地图每行:数据){
convertedData.add(每个箭头);
}
filler.fillData(转换数据);
fecthData返回
列表
。但是filler.fillData要求参数为
List

我希望避免创建新的列表和for循环。

请尝试以下操作:

List<Map<String, Object>> data = new ArrayList<>();
filler.fillData(new ArrayList<>(data));
List data=new ArrayList();
filler.fillData(新数组列表(数据));

new ArrayList(data)
将对象复制到一个新的ArrayList中,该ArrayList直接适应
列表的签名

您可以直接转换到
(List)
以绕过泛型类型信息。啊,这似乎是最简单和有效的。我们不需要创建一个新的列表和复制对象。谢谢。我的编译器报告为不兼容类型。赫尔伍德的评论对我很有用