>Comme deja dit, tu dois utilise la method clone, mais ton object doit
>implementer l'interface Clonable !
>Cela pose un probleme, lorsque tu tiens un reference d'un object qui
>implement Clonable sous un forme plus generic comme Object,
>le compilo ne te laisse pas appeler la fonction vu quelle est protectd !
>Pour cela j'ai une solution via l'introspection !

L'id�e de clone, c'est que comme tu es dans ton objet, tu sais quels sont les types de 
tes diff�rentes sous-parties. Et par cons�quent, tu n'es jamais oblig� de passer par 
Object. D'ailleurs, tous les objets non Copyable dont tu disposes sont probablement 
recr��s lors d'un clone, pusiqu'ils doivent balancer une CloneNotSupportedException.
Par cons�quent, j'estime (� priori, bien s�r), que devoir utiliser l'introspection 
pour cloner des Object n'est pas une bonne id�e.

>Mais le clone, ne fait qu'une copie shadow, pour faire un copie deep, de
>maniere generique tu peux utiliser la serialisation !

Ca d�pend comment tu t'en sers. le clone, comme equals, est une m�thode qu'il vaut 
mieux surcharger, pour en ma�triser le fonctionnement. Et dans ce cas, libre � toi de 
faire ton clone comme tu l'entends.

>Si non, creer comme en C++ un contructeur de copie !

Quelqu'un rappelait que le constructeur de copie n'�tait pas Java, pour la bonne 
raison qu'on perd, dans le cas du constructeur de copie, l'h�ritage qui est conserv� 
avec le clone.
>
>Si cela t'interesse, je peux te fournir des exmples pour les deux cas !
>
>Dominique
>

-- 
Nicolas Delsaux
"Ia d�mocratie est la pire des dictatures parce qu'elle est la dictature exerc�e par 
le plus grand nombre sur la minorit�."
Pierre Desproges


Répondre à