cs_marilou
Messages postés26Date d'inscriptiondimanche 13 février 2005StatutMembreDernière intervention30 janvier 2007
-
27 févr. 2006 à 00:15
cs_marilou
Messages postés26Date d'inscriptiondimanche 13 février 2005StatutMembreDernière intervention30 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.
cs_marilou
Messages postés26Date d'inscriptiondimanche 13 février 2005StatutMembreDernière intervention30 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?
gmi19oj19
Messages postés545Date d'inscriptionlundi 10 mai 2004StatutMembreDernière intervention28 septembre 20112 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...
cs_marilou
Messages postés26Date d'inscriptiondimanche 13 février 2005StatutMembreDernière intervention30 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!