2012-05-25 9 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

टिप के लिए धन्यवाद! हालांकि यह सख्ती से ऊपर सवाल का जवाब नहीं बोल रहा है, यह solv मेरी समस्या एड करें। यहाँ मैं क्या किया है: जब पार्सल के लिए लिख: 'बंडल बंडल = नए बंडल();' \t \t \t 'bundle.putSerializable (" मानचित्र ", myMap);' ' dest.writeBundle (बंडल); ' जब पार्सल से फिर से पढ़ने: ' बंडल बंडल = in.readBundle(); '' @SuppressWarnings ("अनियंत्रित") '' HashMap <स्ट्रिंग, स्ट्रिंग> myMap = (HashMap <स्ट्रिंग, ' स्ट्रिंग>) bundle.getSerializable ("नक्शा"); ' this.myMap = myMap;' – hdort

+0

ठीक है, मैं फ़ॉर्मेट करने के लिए है कि बेहतर है, लेकिन यह सिर्फ मेरे लिए काम नहीं कर रहा चाहता था। माफ़ कीजिये! – hdort

+0

रीडबंडल (क्लासलोडर) का उपयोग करें यदि आपके हैशैप में पार्ससेल ऑब्जेक्ट्स हैं। –

संबंधित मुद्दे