爲什麼我得到這個異常?類拋出異常
Map myHash = null myHash =(HashMap)Collections.synchronizedMap(new HashMap());
如果我嘗試使用此HashMap,我得到java.lang.ClassCastException
爲什麼我得到這個異常?類拋出異常
Map myHash = null myHash =(HashMap)Collections.synchronizedMap(new HashMap());
如果我嘗試使用此HashMap,我得到java.lang.ClassCastException
因爲Collections.synchronizedMap()不返回一個HashMap。
正確的方法應該是:
地圖mySyncedMap = Collections.synchronizedMap(新的HashMap());
(或任何其他的地圖,而不是HashMap中)
由於Collections.synchronizedMap
不返回HashMap
。
它返回一些其他類型Map
(你不需要知道的類型),包裝你的HashMap
。
您必須使用Map
接口而不是HashMap
。