OVH Cloud OVH Cloud

Clonage

5 réponses
Avatar
ab
Salut,

Y a t il un moyen de cloner un objet complexe (par exemple une toolbar) sans passer
par l'interface clonable et donc devoir se taper tous les objets contenus dedans
a copier?

Merci

5 réponses

Avatar
Sébastien BALLET
salut

"ab" a écrit dans le message de news:
c2250j$qjh$
Salut,

Y a t il un moyen de cloner un objet complexe (par exemple une toolbar)
sans passer

par l'interface clonable et donc devoir se taper tous les objets contenus
dedans

a copier?

Merci



en passant par la serialisation (dans un tampon memoire bien entendu) ça
devrait marcher.

a+

Avatar
ab
Sébastien BALLET wrote:
salut

"ab" a écrit dans le message de news:
c2250j$qjh$

Salut,

Y a t il un moyen de cloner un objet complexe (par exemple une toolbar)


sans passer

par l'interface clonable et donc devoir se taper tous les objets contenus


dedans

a copier?

Merci




en passant par la serialisation (dans un tampon memoire bien entendu) ça
devrait marcher.

a+


Tiens oui, c'est une bonne idee... Est ce que tous les objets sont serialisables
(avec le jdk 1.4.2) ?

Merci.


Avatar
Sébastien BALLET
salut

"ab" a écrit dans le message de news:
c22clf$uug$
Sébastien BALLET wrote:
salut

"ab" a écrit dans le message de news:
c2250j$qjh$

Salut,

Y a t il un moyen de cloner un objet complexe (par exemple une toolbar)


sans passer

par l'interface clonable et donc devoir se taper tous les objets
contenus




dedans

a copier?

Merci




en passant par la serialisation (dans un tampon memoire bien entendu) ça
devrait marcher.

a+


Tiens oui, c'est une bonne idee... Est ce que tous les objets sont
serialisables

(avec le jdk 1.4.2) ?

Merci.



JToolBar est une extension de JComponent qui implémente Serializable donc tu
ne devrais
pas avoir de pb de ce cote la.


Ci-dessous tu trouveras l'exemple d'une classe singleton permettant de
cloner des objets
à l'aide de la serialisation.

La création d'un clone à l'aide de cette classe s'effectue simplement de la
façon
suivante :

Object clonedObject = Cloner.createClone(objectToClone);



A+
Seb

======================================================================= SOURCE de la
classe Cloner
======================================================================= REMARQUE: cette classe se compile sans générer d'erreur mais je n'ai fait
aucun test.
=======================================================================
import java.io.Serializable;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectOutputStream;
import java.io.ObjectInputStream;
import java.io.IOException;

public class Cloner
{
private static Cloner INSTANCE = new Cloner();

public static Object createClone(Serializable pSource) throws IOException,
ClassNotFoundException
{
return INSTANCE.makeClone(pSource);
}

private Cloner()
{
}

private Object makeClone(Serializable pSource) throws IOException,
ClassNotFoundException
{
Object lvClone = null;

ByteArrayOutputStream lvBAOS = new ByteArrayOutputStream();
ObjectOutputStream lvOOS = new ObjectOutputStream(lvBAOS);

lvOOS.writeObject(pSource);
lvOOS.close();

ByteArrayInputStream lvBAIS = new
ByteArrayInputStream(lvBAOS.toByteArray());
ObjectInputStream lvOIS = new ObjectInputStream(lvBAIS);

lvClone = lvOIS.readObject();
lvOIS.close();

return lvClone;
}

}



Avatar
Sébastien BALLET
salut

"ab" a écrit dans le message de news:
c22clf$uug$
Sébastien BALLET wrote:
salut

"ab" a écrit dans le message de news:
c2250j$qjh$

Salut,

Y a t il un moyen de cloner un objet complexe (par exemple une toolbar)


sans passer

par l'interface clonable et donc devoir se taper tous les objets
contenus




dedans

a copier?

Merci




en passant par la serialisation (dans un tampon memoire bien entendu) ça
devrait marcher.

a+


Tiens oui, c'est une bonne idee... Est ce que tous les objets sont
serialisables

(avec le jdk 1.4.2) ?

Merci.



JToolBar est une extension de JComponent qui implémente Serializable donc tu
ne devrais
pas avoir de pb de ce cote la.


Ci-dessous tu trouveras l'exemple d'une classe singleton permettant de
cloner des objets
à l'aide de la serialisation.

La création d'un clone à l'aide de cette classe s'effectue simplement de la
façon
suivante :

Object clonedObject = Cloner.createClone(objectToClone);



A+
Seb

======================================================================= SOURCE de la
classe Cloner
======================================================================= REMARQUE: cette classe se compile sans générer d'erreur mais je n'ai fait
aucun test.
=======================================================================
import java.io.Serializable;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectOutputStream;
import java.io.ObjectInputStream;
import java.io.IOException;

public class Cloner
{
private static Cloner INSTANCE = new Cloner();

public static Object createClone(Serializable pSource) throws IOException,
ClassNotFoundException
{
return INSTANCE.makeClone(pSource);
}

private Cloner()
{
}

private Object makeClone(Serializable pSource) throws IOException,
ClassNotFoundException
{
Object lvClone = null;

ByteArrayOutputStream lvBAOS = new ByteArrayOutputStream();
ObjectOutputStream lvOOS = new ObjectOutputStream(lvBAOS);

lvOOS.writeObject(pSource);
lvOOS.close();

ByteArrayInputStream lvBAIS = new
ByteArrayInputStream(lvBAOS.toByteArray());
ObjectInputStream lvOIS = new ObjectInputStream(lvBAIS);

lvClone = lvOIS.readObject();
lvOIS.close();

return lvClone;
}

}



Avatar
ab
Merci a toi. Je vais regarder ca de suite en esperant que ca ne soit pas
trop penalisant du point du vue ressources...

A+

Sébastien BALLET wrote:
salut

"ab" a écrit dans le message de news:
c22clf$uug$

Sébastien BALLET wrote:

salut

"ab" a écrit dans le message de news:
c2250j$qjh$


Salut,

Y a t il un moyen de cloner un objet complexe (par exemple une toolbar)


sans passer


par l'interface clonable et donc devoir se taper tous les objets




contenus

dedans


a copier?

Merci




en passant par la serialisation (dans un tampon memoire bien entendu) ça
devrait marcher.

a+


Tiens oui, c'est une bonne idee... Est ce que tous les objets sont


serialisables

(avec le jdk 1.4.2) ?

Merci.




JToolBar est une extension de JComponent qui implémente Serializable donc tu
ne devrais
pas avoir de pb de ce cote la.


Ci-dessous tu trouveras l'exemple d'une classe singleton permettant de
cloner des objets
à l'aide de la serialisation.

La création d'un clone à l'aide de cette classe s'effectue simplement de la
façon
suivante :