Clonage

Résolu
cs_marilou Messages postés 26 Date d'inscription dimanche 13 février 2005 Statut Membre Dernière intervention 30 janvier 2007 - 27 févr. 2006 à 00:15
cs_marilou Messages postés 26 Date d'inscription dimanche 13 février 2005 Statut Membre Dernière intervention 30 janvier 2007 - 2 mars 2006 à 01:20
Bonjour



je voudrais cloner un objet récupéré dans une ArrayList mais je n'y arrive pas.

J'ai implémenté une méthode : public MonObjet clone()

et lorsque je fait:

MonObjet A = new MonObjet();

MonObjet B = A.clone();

ça fonctionne mais lorsque je fais :

MonObjet B = (MonObjet)(MaListe.get(i)).clone();

à la compilation j'ai le message: clone() has protected access in java.lang.Object

je ne comprends pas pourquoi merci de vos réponses.

5 réponses

gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 2
27 févr. 2006 à 09:16
Rien de plus qu'ne erreur de parethesage

MonObjet B = ((MonObjet)MaListe.get(i)).clone();

Normalement là c'est ok

gmi19oj19
3
cs_marilou Messages postés 26 Date d'inscription dimanche 13 février 2005 Statut Membre Dernière intervention 30 janvier 2007
27 févr. 2006 à 16:19
merci beaucoup ça fonctionne.

Mais ma liste peut contenir plusieurs type d'objets. Dans ce cas le
cast peut etre different, n'y a t-il pas un moyen plus simple que "if
... instanceof ...." pour trouver le bon cast à appliquer?

merci
0
gmi19oj19 Messages postés 545 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 28 septembre 2011 2
27 févr. 2006 à 16:33
Ben c'est pas très bon en théorie de mettre des types différents dans une structure de données... donc soit tu sais ce qu'il y a a telle place ans ta liste, soit tu fais des instance of horribles...

Reste la solution d'utiliser la généricité si tout tes objets étendent une même interface ou héritent d'une même classe, ça fait plus de cast et ça reste correct pour peu qu'il y ait pas de méthodes en plus dans les différentes implémentations...

gmi19oj19
0
cs_marilou Messages postés 26 Date d'inscription dimanche 13 février 2005 Statut Membre Dernière intervention 30 janvier 2007
27 févr. 2006 à 16:47
ok merci gmi19oj19
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_marilou Messages postés 26 Date d'inscription dimanche 13 février 2005 Statut Membre Dernière intervention 30 janvier 2007
2 mars 2006 à 01:20
resalut

je suis toujours sur le même probleme car mon arraylist contient des
objets de type différents (il me semble que c'est l'une des utilités
d'une arraylist sinon j'utiliserais un tableau). Je ne peux donc pas
utiliser la généricité et je ne peux pas toujours appliquer le même
cast. Il existe forcément une solution je ne pense quand même pas être la 1ere personne à vouloir faire ça!

Est ce que quelqu'un a une idée? merci
0
Rejoignez-nous