List<Map> 如何转换为List<Map<String,String>>

yanglk2010 发布于 05/21 11:07
阅读 455
收藏 0

List<Map>  如何转换为List<Map<String,String>>?

List<Map<String,String>> = (List<Map<String,String>>)List<Map> 强制转换为什么不行?

加载中
2
zh0
zh0

List<Map<String,String>> = new ArrayList<>(List<Map>), 你这样试下,应该个泛型是raw type有关系 

1

如果能确定  入参的List 就是一个 List<Map<String,String>> 则最好在源头就将泛型约束好,不然可能出现编码期无错,运行期出现类型转换的问题

不能确定泛型类型的话,最后遍历转换一次,或者Stream的方式做类型转换,避免运行期的类型转换错误

0
前端大师傅
前端大师傅

怎么可能,类型不一样,不可能强转。强转只是原类型和目标类型是父子级才可以。

如 int a =0; 转成 object b以后再转回来,即 (int)b这是可以的。

这就是 as 和 is的关系。

你这个Map 和 Map<string,string>不是父子级关系,怎么可能强转。

只能写代码用stream来转。

0
J
Jason909
List<Map> m = new ArrayList<>();
List m1 = m;
List<Map<String, String>> m2 = (List<Map<String, String>>) m1; // 不报错
List<?> m3 = m;
m2 = (List<Map<String, String>>) m3; // 不报错

 

返回顶部
顶部