2013-06-05 4 views
-2

J'ai serveur écrit en Java SE, et un client est écrit en android, quand je sérialiser un objet Map dans le client, puis je le passe au serveur et le serveur ne peut pas désérialiser l'objet et vice versa. Donc, quand j'essaie de désérialiser un autre objet comme String, ou Date, cela fonctionne très bien.Android hashMap deserialize

+0

Une autre information? – bsiamionau

+0

Quel type de sérialisation? –

+0

Quel type de données est stocké dans votre carte? – AlexR

Répondre

2

Map s devrait généralement être évitée dans les interfaces, en particulier lorsqu'il s'agit de sérialisation.

Essayez plutôt de remplacer votre carte par une autre structure de données contenant les mêmes données.

Par exemple, créez un objet comme:

public class MyObject implements Serializable { 
    Key keyOfMap; 
    Value valueOfMap; 
} 

et envoyer un List<MyObject> ou équivalent.

Cela devrait éviter tous vos problèmes de carte.

+0

Merci. J'ai pensé à ça. –

+0

mais je me demande pourquoi la carte ne désérialise pas, parce que quand je sérialiser en Java SE le serveur désérialise bien l'objet –

1

HashMap lui-même est sérialisable. Le problème est que toutes les clés/valeurs qu'il contient doivent être Serializable aussi si vous voulez sérialiser cette instance de carte.

+0

Tous les objets sont des outils Serializable –

+0

Je ne pense pas. Seules les classes implémentant java.io.Serializable peuvent être sérialisées avec ObjectOutputStream.writeObject –