集合中的java类型强制转换

rfbsl7qr  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(427)

我遇到了一个复杂的泛型问题:支持两个集合引用a和b,其定义如下:

List<Map<String, Object>>  A = new ArrayList<>();
List<Map> B = new ArrayList<>();

接下来,将b的所有项放入a中,但是如果没有使用javac进行force类型转换,就无法直接工作。

A.addAll((C)B);

那么,在这种情况下,c应该是什么,它与javac兼容。
(我在公司维护旧项目的旧代码,我不知道作者为什么这样编码[眼泪])

xkftehaa

xkftehaa1#

你可以用 List<Map<String, Object>> 投。

A.addAll((List<Map<String, Object>>)(Object)B);

额外演员 Object 需要向编译器解释谁是这里的老板。

相关问题