> Si tu impl�mentes le constructeur qui va bien, �a peut se faire oui.
C'est faisable, mais cela ne va pas dans la philosophie Java.
Ca ressemble fortement a du C++.
En java, il est conseill� d'utiliser le clonage (m�thode clone()).
Cette m�thode doit �tre red�finie par les objets voulant acc�pter le
clonage.
Le clonage est plus puissant car il permet l'h�ritage
Exemple
class A {
int monChampA;
public A() {
}
public A(A a) {
this.monChampA = a.monChampA;
}
public void clone() {
return this.clone();
}
}
class B extends A {
int monChampB;
public B() {
}
public B(B b) {
super(b);
this.monChampB = b.monChampB;
}
}
Par constructeur :
public A duplicate(A a) {
return new A(a);
}
Par clonage :
public A duplicate(A a) {
return (A)a.clone();
}
Dans le premier cas
A = duplicate(new B());
retourne une instance de A, perte du champ monChampB;
Dans le second cas
A = duplicate(new B());
retourne une instance de B, sans perte du champ monChampB;
ATTENTION, il y a un pi�ge avec le clonage :
Par d�fault, l'instance et son clone se partagent les m�mes objets. Il y a
recopie des pointeurs.
Si tu veux que tes champs de classes soient eux aussi clon�s, tu dois le
faire toi m�me.
A+
--------------------------------------------------------------------
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 : Patrice Godard [mailto:[EMAIL PROTECTED]]
Envoy� : lundi 2 d�cembre 2002 16:16
� : [EMAIL PROTECTED]
Objet : Re: Duplication d'un Objet
Si tu impl�mentes le constructeur qui va bien, �a peut se faire oui.
-----Original Message-----
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Date: Mon, 2 Dec 2002 16:18:19 +0100
Subject: Duplication d'un Objet
Bonjour,
Est-ce possible de dupliquer un objet de la mani�re suivante :
Objet objetDestination = new Objet(objetSource);
Ou faut-il utiliser une autre m�thode ?
Merci pour votre aide.
Eddy PALISSE
--
INGENCYS
Agence Conseil & Ing�nierie en Syst�mes d'Information
4, rue de la Madeleine
45140 SAINT-JEAN-DE-RUELLE
T�l. 02 38 43 45 86 - Fax : 02 38 43 48 83
http://www.ingencys.net
-- S'il n'y a pas de solution, il n'y a pas de probl�me --