我正嘗試使用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) –