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

Langage Java Discussion :

dédoubler un object


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 343
    Par défaut dédoubler un object
    voici mon code:

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    Collection<ConfigEmission> configs = new ArrayList<ConfigEmission>();
    Collection<ConfigEmission> copie = new ArrayList<ConfigEmission>();
     
    configs = hM.values();
     
    Iterator iterator = copie.iterator();
     
    while (iterator.hasNext()) {
    	ConfigEmission ancien = (ConfigEmission) iterator.next();
     
    	ConfigEmission nouveau = new ConfigEmission();
     
    	nouveau.setScenario(ancien.getScenario());
    	nouveau.setProtocol(ancien.getProtocol());
    	nouveau.setCallTo(ancien.getCallTo());
    	nouveau.setCaller(ancien.getCaller());
    	nouveau.setMaxCom(ancien.getMaxCom());
    	nouveau.setMinCom(ancien.getMinCom());
    	nouveau.setMaxRing(ancien.getMaxRing());
    	nouveau.setMinRing(ancien.getMinRing());
    	nouveau.setMaxDelay(ancien.getMaxDelay());
    	nouveau.setMinDelay(ancien.getMinDelay());
    	nouveau.setNbTotalCall(ancien.getNbTotalCall());
    	nouveau.setMaxCall(ancien.getMaxCall());
     
    	copie.add(nouveau);
    }
    moteur = new Moteur(configs);
    moteur.start();
    configs = copie;
    j'aimerai comprendre un peu les objects dans ce code:

    hM (qui est de type hashMap(), configs et copie pointe sur un object identique (même si hM pointe sur d'autres): vrai ou faux ?

    y'a t'il un moyen de faire en sorte que copie et configs aient les même valeurs mais ne soit pas le même object ( copier configs dans copie pour pouvoir modifier configs et garder un original grâce à copie)?

    mieux ! est il possible de modifier configs sans modifier hM (ce qui nous débarasse de copie) ?

    je sais pas si j'ai été clair ? dites le moi ...

    sinon merci !

  2. #2
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Ici copie et configs ne sont pas du tout le même objet... Ce sont deux listes bien différentes.
    Dans ton programme, on regarde le contenu de configs, et pour chaque Config, on crée un autre objet similaire qu'on place dans copie.

    Le but est très certainement de protéger ces objet et la liste pour qu'ils ne soient pas modifiés par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    moteur = new Moteur(configs);
    Une utilisation un peu plus simple reviendrait à utiliser la méthode clone pour cloner les fichiers au lieu de le faire "à la main" comme ça...

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 343
    Par défaut
    Citation Envoyé par chtig
    Ici copie et configs ne sont pas du tout le même objet... Ce sont deux listes bien différentes.
    Dans ton programme, on regarde le contenu de configs, et pour chaque Config, on crée un autre objet similaire qu'on place dans copie.

    Le but est très certainement de protéger ces objet et la liste pour qu'ils ne soient pas modifiés par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    moteur = new Moteur(configs);
    Une utilisation un peu plus simple reviendrait à utiliser la méthode clone pour cloner les fichiers au lieu de le faire "à la main" comme ça...
    ok merci; je connais la méthode clone de nom;

    si je veux cloner hM qui est une hashMap<String, MonTypeObject(), je fais comment ?
    apparement hM.clone(), ça ne marche pas fort ...
    sachant aussi que MonTypeObject est une instance de classe créée par JAXB, donc je ne touche pas à cette classe ...

    merci de ta réponse !

  4. #4
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    MonTypeObject est une instance de classe créée par JAXB
    Hum ... ça je ne sais pas trop comment le cloner

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Notion de boucles dans Business Object
    Par lionelEIGIP dans le forum Deski
    Réponses: 1
    Dernier message: 08/04/2004, 11h26
  2. Réponses: 2
    Dernier message: 30/01/2004, 14h07
  3. [DDL] "object <table> is in use"
    Par TMuet dans le forum SQL
    Réponses: 4
    Dernier message: 26/01/2004, 10h18
  4. Réponses: 8
    Dernier message: 21/11/2003, 18h38
  5. Comment inserer des donnee de type Large Object !!
    Par josoft dans le forum Requêtes
    Réponses: 4
    Dernier message: 20/07/2003, 11h21

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