2010-03-19 179 views
0

爲什麼我得到這個異常?類拋出異常

Map myHash = null myHash =(HashMap)Collections.synchronizedMap(new HashMap());

如果我嘗試使用此HashMap,我得到java.lang.ClassCastException

回答

1

因爲Collections.synchronizedMap()不返回一個HashMap。

正確的方法應該是:

地圖mySyncedMap = Collections.synchronizedMap(新的HashMap());

(或任何其他的地圖,而不是HashMap中)

0

由於Collections.synchronizedMap不返回HashMap

它返回一些其他類型Map(你不需要知道的類型),包裝你的HashMap

您必須使用Map接口而不是HashMap