簡體   English   中英

新的ConcurrentHashMap的新ConcurrentHashMap

[英]new ConcurrentHashMap of new ConcurrentHashMap

我正在嘗試使用初始化ConcurrentHashMapConcurrentHashMap

private final ConcurrentHashMap<
    String, 
    ConcurrentHashMap<String, Double>
> myMulitiConcurrentHashMap = new ConcurrentHashMap<
    String, 
    new ConcurrentHashMap<String, Double>()
>();

但是javac

HashMapper.java:132: error: illegal start of type
    new ConcurrentHashMap<String, Double>()
    ^
HashMapper.java:132: error: '(' or '[' expected
    new ConcurrentHashMap<String, Double>()
        ^
HashMapper.java:132: error: ';' expected
    new ConcurrentHashMap<String, Double>()

指向第二個new

如何正確new初始化myMulitiConcurrentHashMap

您不初始化內部的ConcurrentHashMap<String, Double> ; 只需執行以下操作:

new ConcurrentHashMap<
    String, 
    ConcurrentHashMap<String, Double>
>();

泛型類型參數正是– 類型
擁有Map<String, new SomeType()>沒有任何意義。
您只需編寫第二個參數的類型

解釋一下,您正在創建一個new ConcurrentHashMap<K, V>() ,以后可以容納多個內部地圖。

順便說一下,Java 7現在有一個更簡潔的語法(“鑽石”):

private final 
   ConcurrentHashMap<String, ConcurrentHashMap<String, Double>>
      myMulitiConcurrentHashMap =
         new ConcurrentHashMap<>();

您也應該能夠使用左側的接口:

private final 
   ConcurrentMap<String, ConcurrentMap<String, Double>>
      myMulitiConcurrentHashMap =
         new ConcurrentHashMap<>();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM