IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

[Serialisation] évolution des objets


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de kerinel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 103
    Par défaut [Serialisation] évolution des objets
    Bonjour,
    je développe actuellement des classes pour mon appli et je souhaite tout d'abord réaliser une version 1, avec les fonctionnalités basiques, sans plus. Ensuite quand ça tournera, je "raffinerai" les classes en ajoutant des fonctionnalités supplémentaires.
    Or entre temps, j'aurais sauvegardé des objets en les sérialisants et je voudrais pouvoir les récupérer en assurant la compatibilité ascendante.
    J'ai bien trouvé ce post au cours de mes recherches qui propose de surcharger writeObject et readObject, mais je ne vois pas trop comment "remplir" les blancs.
    Est ce que je dois envoyer dans le Stream les différents composants et les récupérer dans le même ordre en commençant par le numéro de version et en faisant un switch pour la désérialisation ?
    je n'ai pas trouvé d'exemple concret avec quelques variables (l'exemple ici étant un peu léger je trouve.

    merci pour votre aide,
    cordialement,
    kerinel

  2. #2
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Contrairement à une idée très répandue la sérialisation gère très bien les changements de version des classes, de façon transparente dans 90% des cas, à partir du moment où tu places un serialVersionUID. Pour les 10% restant tu peux utiliser les write et readObject, et même d'autres techniques.

    Tu peux avoir les détails précis du mécanisme à Versioning of Serializable Objects.

    Pour les classes dont on prévoit de grandes évolutions, il vaut mieux utiliser le mécanisme du XMLEncoder / XMLDecoder. Ici on résoud les évolutions non pas par un numéro de série, mais en conservant un même format général (le modèle des beans, mais tu peux en mettre en oeuvre d'autres).

Discussions similaires

  1. Serialisation des objets
    Par khaigo dans le forum GWT et Vaadin
    Réponses: 2
    Dernier message: 16/08/2009, 14h57
  2. serialiser des objets Swing
    Par mitoubra dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 09/11/2008, 10h20
  3. Serialisation/deserialisation d'un arrayList retourne des objets vides
    Par cdtkoenig dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 18/07/2007, 15h45
  4. serialiser des objets
    Par bfb dans le forum Langage
    Réponses: 2
    Dernier message: 30/07/2005, 23h07
  5. Réponses: 4
    Dernier message: 20/05/2005, 15h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo