为什么我会得到这个例外?
映射myHash = null myHash =(HashMap)Collections.synchronizedMap(new HashMap());
如果我尝试使用这个hashmap,我会得到java.lang.ClassCastException
答案 0 :(得分:1)
因为Collections.synchronizedMap()不返回HashMap。
正确的方法应该是:
映射mySyncedMap = Collections.synchronizedMap(new HashMap());
(或任何其他地图而不是HashMap)
答案 1 :(得分:0)
因为Collections.synchronizedMap
未返回HashMap
。
它会返回其他类型的Map
(您不应该知道的类型),它会包裹您的HashMap
。
您必须使用Map
界面而不是HashMap
。