> 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 --

Répondre à