【发布时间】:2013-08-28 12:28:28
【问题描述】:
我正在尝试使用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接口定义地图的地图?
【问题讨论】:
-
这其实很有趣。我原以为这会奏效。
-
啊,是的,它不应该工作是有道理的。当您创建“新的 ConcurrentSkipListMap
>()”时,您实际上并没有实例化(第二个)skiplistmap。因此,您创建的地图不会接受不是跳过列表地图的地图,原始定义必须保证这一点
标签: java generics map concurrentskiplistmap