J'ai essayé de faire ceci:sérialisation tout objet
ByteArrayOutputStream b = new ByteArrayOutputStream();
ObjectOutputStream o = new ObjectOutputStream(b);
o.writeObject(obj);
Où obj est une classe simple j'ai fait:
class Car {
int id;
String color;
//...
}
Cependant, je reçois java.io.NotSerializableException
Est-il possible de sérialisation à peu près tout sorte de java.lang.Object
en byte array
? Est-ce le cas, comment?
Mise à jour:
La classe qui sera "sérialisé" ne met pas en œuvre une interface Serializable
; l'idée derrière ce que je suis en train de faire est que je suis en train d'avoir un Databse adossés à des créances java.util.Map
où des objets put
sur la carte sont stockées directement dans la base de données, donc toute sorte de Object
J'ai aussi vu quelques-uns cadre de sérialisation, où contourner cette « limitation » sérialisation objet arbitraire, il y a une inscription de classe comme:
kryo.register(SomeClass.class, 0);
Je ne sais pas à ce sujet.
Mais ce que je suis tout à fait sûr que je dois faire:
- Réflexion lire les champs et les méthodes d'un objet
Découvrez google GSON - il pourrait être utile?https://code.google.com/p/google-gson/ –
ajoutez simplement des outils Serializable à votre objet Car – AurA
[Lire] (http://docs.oracle.com/javase/7/docs/platform/serialization/ spec/serial-arch.html) spécification de sérialisation – subodh