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 :

[clone] cloner également la valeur des attributs


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut [clone] cloner également la valeur des attributs
    Bonjour,

    j'aimerai savoir comment faire pour cloner une classe mais en dupliquant également la valeur des attributs, ce que ne fait pas la méthode "clone()".

    Merci

  2. #2
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    On "clone" des objets et non des classes...
    Tu dois pour cela redéfinir la méthode clone pour qu'elle fasse ce que tu veux.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public MonObjet clone(MonObjet B){
       MonObjet A=new MonObjet();
       A.setAttribut1(B.getAttribut1);
       //le reste du traitement
       return A;
    }


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  3. #3
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    Citation Envoyé par afrikha
    On "clone" des objets et non des classes...
    Tu dois pour cela redéfinir la méthode clone pour qu'elle fasse ce que tu veux.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public MonObjet clone(MonObjet B){
       MonObjet A=new MonObjet();
       A.setAttribut1(B.getAttribut1);
       //le reste du traitement
       return A;
    }

    FAUX !
    Dans ton exemple, l'attribut B n'est pas dupliqué. L'attribut A et l'attribut B référencent la même valeur.

    Moi je voudrais cloner les attributs également

  4. #4
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Ce que tu peut faire, c'est prendre chaque attribut de la classe à cloner et les cloner et ensuite mettre le clone de ces attributs dans le clone de la classe.

  5. #5
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    Oui en gros je voulais savoir si il existait une méthode proche de la méthode clone() mais qui faisiat un clone total, c'est à dire qui duplique l'objet, ses attributs et la valeur des attributs.

    Si cela n'existe pas, j'opterai alors pour une autre facon de faire, en l'occurence redéfinir la méthode clone et cloner mes attributs un par un.

  6. #6
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Ah la la, je suis mal réveillé moi, mais bon ce n'est pas une raison
    Je ne vois pas d'autres solutions à part celle proposé par wichtounet.


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  7. #7
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    Citation Envoyé par wichtounet
    Ce que tu peut faire, c'est prendre chaque attribut de la classe à cloner et les cloner [...]
    Le problème c'est que mon objet comporte des attributs de types différents : String ,int et des types Objet.

    Or , la classe String par exemple, n'implémente pas l'interface Cloneable, ce qui signifie que pour cloner une valeur de type String, je suis obligé de faire dériver la classe String en une classe String1 qui va implémenter la classe Cloneable et tous mes attributs de type String devront être de type String1 : extrémement lourd...

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

Discussions similaires

  1. [SimpleXML] Obtenir la valeur des attributs
    Par domishao dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 04/02/2008, 12h04
  2. Réponses: 1
    Dernier message: 22/01/2008, 17h24
  3. [XSLT] Eliminer les doublons de valeurs des attributs
    Par furybubu dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 04/05/2007, 10h09
  4. [XSD]fixer la valeur des attributs
    Par mamiberkof dans le forum Valider
    Réponses: 3
    Dernier message: 24/01/2007, 17h54
  5. changer la valeur des attribut
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 23/02/2006, 14h27

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