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.
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.
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
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 ?
Salut,
Dans les deux cas, cela dépend de l'implémentation choisi par le développeur... Donc la seule solution est de consulter la documentationEnvoyé par Zanton
a++
Partager