我正尝试使用ConcurrentSkipListMap
创建地图地图。如果我创建一个简单的图示例,它似乎是罚款:尝试创建地图地图时出现不兼容类型错误
Map<Integer, Integer> mmap2 = new ConcurrentSkipListMap<Integer, Integer>();
有一次,我尝试制作一张地图,我得到一个Incompatible types
错误:
Map<Integer, Map<Integer, Integer>> mmap =
new ConcurrentSkipListMap<Integer, ConcurrentSkipListMap<Integer, Integer>>();
如果我切换定义,包括一个ConcurrentSkipListMap
,它编译没有问题:
Map<Integer, ConcurrentSkipListMap<Integer, Integer>> mmap =
new ConcurrentSkipListMap<Integer, ConcurrentSkipListMap<Integer, Integer>>();
为什么不能我定义地图的使用Map
界面的地图吗?
这是很有意思的内部地图参考。我本来期望能够工作。 – Cruncher
啊,是的,它是有道理的,它不应该工作。当你创建一个新的ConcurrentSkipListMap>()时,你实际上并没有实例化第二个skiplistmap。因此,您创建的地图不会接受不是跳过列表地图的地图,原始定义必须保证 –
Cruncher
[列表列表的子类可能重复?为什么不是Java的泛型隐式多态?](http://stackoverflow.com/questions/2745265/is-listdog-a-subclass-of-listanimal-why-arent-javas-generics-implicitly-p) –