【发布时间】:2015-12-22 06:29:44
【问题描述】:
我有两张地图Something1 和Something2。两者都扩展了Something 类。
Map<Class<? extends Something1>, String> m1
Map<Class<? extends Something2> ,String> m2
我想创建一个更通用的映射m3,我可以像这样分配m1 或m2:
Map<Class<? extends Something>, String> m3 = m1;
但是我得到以下异常:
Type mismatch: cannot convert from Map<Class<? extends Something1>, String> to Map<Class<? extends Something>, String>
我也尝试过使用Class<?>,但它似乎不起作用。
我做错了什么?
【问题讨论】:
-
阅读这个答案 - stackoverflow.com/a/19220458/1679863,了解多级泛型类型的工作原理。之后,您将能够理解将第三张地图更改为:
Map<? extends Class<? extends Something>, String> = m1;会起作用。 -
非常感谢!这解决了我的问题