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

Format d'échange (XML, JSON...) Java Discussion :

Probleme de clonage d'un objet serialise a partir d'un fichier XML


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 71
    Points
    71
    Par défaut Probleme de clonage d'un objet serialise a partir d'un fichier XML
    Bonjour,
    Je vous expose mon probleme, veuillez repondre le plus tot possible. Merci
    J'ai une classe Factory que j'ai cree moi-meme et qui permet de :
    • désérialiser un document document.xml et le récupérer dans un objet doc ;
    • ajouter des articles dans le tableau de type Tbl de l’objet doc ;
    • Une fois les lignes ajoutées dans le tableau et les modifications du numéro de la facture et de l’auteur sont faites sur l’objet doc, ce dernier va être sérialiser dans le fichier doc2.xml;
    • Le document doc2.xml devra en théorie contenir dans ses balises les articles ajoutes, mais ce dernier ne contient que plusieurs occurrences de la dernière ligne ajoutée.
    Problème de clonage de l’objet ligne Tr :
    L’objet Tr contient lui-même plusieurs objets : objet TrPr propriétés de la ligne Tr, une liste de l’objet colonne Tc (List<Tc> ).
    Je mets la classe Tr et toutes les classes qui la compose Cloneable ;
    Je surdéfinis le méthode Clone dans la classe Tr de façon a ce qu’elle clone tous les objets Tc qu’elle contient :
    for(int i=0;i<ligne.getTc().size();i++){ligne.getTc().set(i,this.tc.get(i).clone());}
    C’est pas suffisant parce qu’il faut aussi surdéfinir aussi la méthode clone dans la classe Tc de tel façon a ce qu’elle puisse cloner tous ses sous objets qu’elle contient, ce qui veut dire une autre boucle :
    for(int i=0;i<(int)getP().size();i++){colonne.p.add((P)p.get(i).clone());}
    c’est la ou ca bloque: mémoire insuffisante !!!
    si je supprime cette ligne les colonnes ne sont pas cloner, mais ils font références sur les colonnes originales.

  2. #2
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 13
    Points
    13
    Par défaut
    Salut ton poste est illisible et le choix des noms de variables pas trop top.

    Je comprend pas ta seconde boucle.

    Normalement si tu as bien redefinie la méthode clone d'un objet, tu as nullement besoin de boucler plusieurs fois.

    Moi je ferrais pour chacune des tr j'appel la méthode clone de la ligne et puis voilà, rien de plus.

    d'après ce que je lis : L’objet Tr contient lui-même plusieurs objets : objet TrPr propriétés de la ligne Tr, une liste de l’objet colonne Tc (List<Tc> ).

    la méthode clone() de Tr doit donc être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    public Object clone() {
            Tr obj = (Tr)super.clone();
            if (tePr != null) {
                obj.setTePr(tePr.clone()); 
            }
     
            if (tc != null && !tc.isEmpty()) {
                 final List<Tc> lTc = new ArrayList<Tc>();
                 for (Tc objTc : tc) {
                      lTc.add(objTc.clone());
                 }
                 obj.setTc(lTc); 
            }
           return obj;
    }
    NB : pense à CloneNotSupportedException
    En esperant t'avoir aidé

    bye

    David
    bye

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/03/2011, 18h30
  2. [Language][Package]Probleme de portée d'un Objet
    Par julien.v dans le forum Langage
    Réponses: 6
    Dernier message: 06/06/2005, 14h23
  3. Clonage d'un objet
    Par Dar Shak dans le forum Java ME
    Réponses: 2
    Dernier message: 31/05/2005, 17h06
  4. Réponses: 11
    Dernier message: 02/05/2005, 19h30
  5. [FLASH MX] Probleme avec le drag d'objet
    Par Toutouffe dans le forum Flash
    Réponses: 3
    Dernier message: 23/01/2005, 22h41

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