2012-05-25 60 views
6

我使用下面的代碼讀取地圖從地塊HashMap<String, String類型>:Parcel.readHashMap使用哪個類加載器?

in.readHashMap(HashMap.class.getClassLoader()); 

這似乎是工作得很好,但我得到一個警告:

Type safety: The expression of type HashMap needs unchecked conversion to conform to Map<String,String> 

有一個「正確」的方式來做到這一點,使用不同的類加載器?或者我應該去@SuppressWarnings("unchecked")?

回答

6

Parcel.readHashMap() Android開發者文檔說:

請使用readBundle(ClassLoader)代替(其數據必須 被寫入與writeBundle(Bundle)

因此,也許你應該使用readBundle()writeBundle()代替。

+12

感謝您的提示!雖然嚴格來說不是上述問題的答案,但它解決了編輯我的問題。 這裏就是我所做的: 當寫包裹: '捆綁包=新包();'\t \t \t 'bundle.putSerializable( 「地圖」,MYMAP);'' dest.writeBundle(包);' 當從包裹再次讀取: '捆綁捆= in.readBundle();'' @SuppressWarnings( 「未登記」)'' HashMap中<字符串,字符串> MYMAP =(HashMap中<字符串,' String>)bundle.getSerializable(「map」);' this.myMap = myMap;' – hdort

+0

好的,我想格式化得更好,但它不適合我。抱歉! – hdort

+0

如果hashmap具有可分段的對象,請使用readBundle(classLoader)。 –

相關問題