我正在尝试初始化ConcurrentHashMap of ConcurrentHashMap
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。
如何正确初始化myMulitiConcurrentHashMap new?
发布于 2013-12-01 23:52:47
顺便说一下,Java 7现在有了更简洁的语法(“菱形”):
private final
ConcurrentHashMap<String, ConcurrentHashMap<String, Double>>
myMulitiConcurrentHashMap =
new ConcurrentHashMap<>();您也应该能够在左手边使用接口:
private final
ConcurrentMap<String, ConcurrentMap<String, Double>>
myMulitiConcurrentHashMap =
new ConcurrentHashMap<>();发布于 2013-12-01 23:40:52
您不初始化内部ConcurrentHashMap<String, Double>;只需执行以下操作:
new ConcurrentHashMap<
String,
ConcurrentHashMap<String, Double>
>();发布于 2013-12-01 23:41:14
泛型类型参数正是-类型。
拥有一个Map<String, new SomeType()>是没有意义的。
只需编写第二个参数的类型即可。
换句话来说,您正在创建一个new ConcurrentHashMap<K, V>(),它可以在稍后保存多个内部映射。
https://stackoverflow.com/questions/20318655
复制相似问题