> ...mais il
> n'existe pas de fa�on g�n�rique de cloner un objet. C'est une limitation
> volontaire. Tu peux trouver des workeround partiels, mais rien de
g�n�rique.
> Tu DOIS partir d'une classe que tu as toi m�me d�fini et �crit, classe qui
> concr�tise Cloneable et qui rend publique la m�thode clone...
Je suis � 100% d'accord avec toi. Le clonage est toujours probl�matique et
demande pas mal de r�flexion avant de l'�crire.
Par contre, Dominique a raison sur un point.
Si tu as un tableau de clonable, alors tu peux vouloir dire :
Le clone d'un tableau de clonable est le tableau des clones.
En le lisant doucement on comprend, si, si :-)
Or, savoir qu'un objet est clonable (java.lang.Cloneable) ne rend pas pour
autant sa m�thode accessible (java.lang.Object # protected Object clone()
throws CloneNotSupportedException), ce qui est bien dommage.
Il aurait suffit de d�finir
public Object clone() throws CloneNotSupportedException
dans l'interface clonable pour que �a marche et que l'on puisse �crire :
public Cloneable[] cloneTableau(Cloneable[] tableau) {
Cloneable[] tableauClone = new Cloneable[tableau.length];
for(int i=0; i<tableau.length; i++) {
tableauClone[i] = tableau[i].clone();
}
return tableauClone;
}
--------------------------------------------------------------------
Erik Mazoyer, Chef de projet
HyperOffice
6, rue Jacques Daguerre - 92565 Rueil-Malmaison Cedex
T�l. 01 41 96 96 76
Fax 01 41 96 96 77
M�l [EMAIL PROTECTED]
-----Message d'origine-----
De : Herve AGNOUX [mailto:[EMAIL PROTECTED]]
Envoy� : mardi 3 d�cembre 2002 15:05
� : [EMAIL PROTECTED]
Objet : Re: Re: Re: Duplication d'un Objet
Le Mardi 3 D�cembre 2002 13:33, Dominique Gallot a �crit :
>
> Clonable[] obj;
> Clonable[] newObject;
>
> Comment de facon generique copier le tableau ? Le seul moyen est d'appeler
> via l'introspection, la methode Clone() ( qui existe et en
> plus qui fonctionnera via que l'object implemente Clonable ) pour cloner
> l'object !
>
Je ne sais pas si j'ai �t� assez clair l� dessus dans mon message, mais il
n'existe pas de fa�on g�n�rique de cloner un objet. C'est une limitation
volontaire. Tu peux trouver des workeround partiels, mais rien de g�n�rique.
Tu DOIS partir d'une classe que tu as toi m�me d�fini et �crit, classe qui
concr�tise Cloneable et qui rend publique la m�thode clone, ou te
d�brouiller
avec des astuces de serialization, elles m�mes non g�n�riques, c'est comme
�a, un point, c'est tout. Affiche le en GROS dans ton bureau !
Pour les tableaux, la m�thode simple, qui ne fait qu'un clone partiel, est
java.lang.System.arraycopy(...). Tu peux aussi t'amuser � partir de
java.util.Arrays.asList(...) (mais l� aussi, clone partiel uniquement).
A+.
--
SARL diaam informatique - 04 50 77 12 60
Ingenierie, d�veloppements de syst�mes d'information
http://www.diaam-informatique.com
--
SARL diaam informatique - 04 50 77 12 60
Ingenierie, d�veloppements de syst�mes d'information
http://www.diaam-informatique.com