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 :

shallow clone et new Objet(objet)


Sujet :

Langage Java

Vue hybride

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 117
    Par défaut shallow clone et new Objet(objet)
    Y-a-t-il une différence entre faire un objet.clone() (shallow clone si je ne me trompe pas) et faire un new Objet(objet) ?
    Avec une HashMap par exemple.

    Merci pour votre aide.

  2. #2
    Membre éclairé
    Avatar de JMLLB
    Inscrit en
    Septembre 2006
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 285
    Par défaut
    Si je ne m'abuse il y a 2 types de clonage:
    shallow copy et deep copy.

    Dans les deux cas c'est une nouvelle instance de l'objet et les membres primitifs sont dupliqués.

    Pour une shallow copy, les membres sont "égaux" à l'objet d'origine. Mais il n'y a pas de nouvelles instances des membres.
    Ce sont les mêmes instances que celles de l'objet d'origine.

    Un clone deep copy, par contre, créé de nouvelles instances "de même valeur" que les membres d'origines.

    Inutile de dire que les comportements sont radicalement différents.

    Pour plus de détails voir:
    http://www.idevelopment.info/data/Pr...ngExample.java

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 117
    Par défaut
    Je ne parle pas de deep copy ici mais plus d'utiliser un constructeur de copie. L'objet qu'on obtient par ce moyen est-il une shallow copy ?

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par Zanton
    Je ne parle pas de deep copy ici mais plus d'utiliser un constructeur de copie. L'objet qu'on obtient par ce moyen est-il une shallow copy ?
    Dans les deux cas, cela dépend de l'implémentation choisi par le développeur... Donc la seule solution est de consulter la documentation

    a++

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 117
    Par défaut
    Ok ça marche. Merci

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

Discussions similaires

  1. new avec objet parent
    Par Invité dans le forum Débuter
    Réponses: 4
    Dernier message: 05/07/2011, 18h54
  2. mapping objet / objet
    Par nanoyass dans le forum Débuter
    Réponses: 3
    Dernier message: 10/03/2011, 17h52
  3. Réponses: 27
    Dernier message: 08/02/2010, 09h42
  4. clone ou duplicate d'objet as3 (movie clip)
    Par roduce dans le forum ActionScript 3
    Réponses: 2
    Dernier message: 30/08/2008, 09h58
  5. [JavaBean] mapping objet/objet quel outil?
    Par willy78 dans le forum JDBC
    Réponses: 2
    Dernier message: 23/01/2006, 23h55

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