2012-05-25 12 views
6

Używam następujący kod do odczytania mapy typu HashMap<String, String> od dzialki:Jakiego programu ładującego klasy użyć w Parcel.readHashMap?

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

To wydaje się działać dobrze, ale pojawia się ostrzeżenie:

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

tam jest "odpowiedni" sposób to zrobić, użyj innego programu ładującego klasy? Czy powinienem po prostu wybrać z @SuppressWarnings("unchecked")?

Odpowiedz

6

dokumentacji dla programistów Android dla Parcel.readHashMap() mówi:

Proszę używać readBundle(ClassLoader) zamiast (którego dane muszą mieć został napisany z writeBundle(Bundle)

Więc może należy używać readBundle() i writeBundle() zamiast..

+12

Dzięki za podpowiedź! Chociaż jest to ściśle rzecz biorąc nie jest odpowiedzią na powyższe pytanie, to solv Ed mój problem. Oto co zrobiłem: Pisząc do działki: 'Bundle wiązki = new Bundle();' \t \t \t 'bundle.putSerializable ("mapa", myMap);' 'dest.writeBundle (wiązki) ' czytając ponownie z paczki: ' Zestaw wiązki = in.readBundle(); ' ' @SuppressWarnings ("niekontrolowany") ' ' HashMap MyMap = (HashMap ) bundle.getSerializable ("map"); ' this.myMap = myMap;' – hdort

+0

OK, chciałem sformatować to lepiej, ale to po prostu nie działa dla mnie. Przepraszam! – hdort

+0

użyj readBundle (classLoader), jeśli twoja mapa ma spłaszczone obiekty. –

Powiązane problemy