Foros del Web » Programación para mayores de 30 ;) » Java »

Problemas con clone

Estas en el tema de Problemas con clone en el foro de Java en Foros del Web. Buenas a tod@s, tengo un problema con un programa de java y no se como solucionarlo, espero que podais echarme una mano. Tengo una clase ...
  #1 (permalink)  
Antiguo 22/12/2007, 03:22
 
Fecha de Ingreso: diciembre-2007
Mensajes: 3
Antigüedad: 16 años, 4 meses
Puntos: 0
Problemas con clone

Buenas a tod@s, tengo un problema con un programa de java y no se como solucionarlo, espero que podais echarme una mano.
Tengo una clase llamada Nodo, que contiene entre otras cosas un objeto de otra clase llamado ListaCaracteres (esta clase sirve para manejar un ArrayList).
Mi trabajo consiste en montar un arbol y lo que hago es ir creando nodos en funcion de unos datos que tengo. Si tengo que crear el nodo raiz, pues le paso los datos y le paso una copia de esta ListaCaracteres. Si luego utilizo un bucle for para añadirle el resto (modificando datos), cuando modifico la clase ListaCaracteres y se lo añado, me modifica todos los objetos de todos los nodos, y eso no quiero que ocurra.
He probado implementando en la clase ListaCaracteres la interfaz Cloneable y creando copias del objeto antes de trabajar con el, pero sigue modificandome todos los objetos que estan dentro del bucle y luego los externos.

Si alguien pudiera ayudarme, se lo agradeceria porque estoy ya algo agobiao y no se por donde meterle mano.

Gracias de antemano, aunque solo sea por leer esto,jeje.
Un saludo.
  #2 (permalink)  
Antiguo 22/12/2007, 08:46
 
Fecha de Ingreso: diciembre-2007
Mensajes: 3
Antigüedad: 16 años, 4 meses
Puntos: 0
Problemas con clone

Creo que el mensaje anterior no esta bien explicado:

Lo que tengo es una clase ListaCaracteres, que contiene un ArrayList, siendo Caracter otra clase creada por mi.

Y es mas lioso aun, porque Caracter contiene entre otros datos, un objeto de la clase ListaValores, compuesta por un ArrayList, siendo Valor otra clase, que a su vez contiene un objeto de la clase ListaTaxones, que contiene un ArraList de otra clase, Taxon.

Se que es muy lioso, y mi problema es que quiero utilizar un objeto de ListaCaracteres, y mas adelante poder modificarlo sin que se cambie el valor original, y segun tengo entendido, solo se puede hacer clonando, xq de otra manera se copiaria una referencia al anterior, y estariamos en las mismas.

Espero haberme explicado mejor.
  #3 (permalink)  
Antiguo 26/12/2007, 14:26
Avatar de pyanqn  
Fecha de Ingreso: noviembre-2005
Mensajes: 331
Antigüedad: 18 años, 5 meses
Puntos: 8
Re: Problemas con clone

por que mejor no nos envias estas clases a las que te refieres! porque la verdad es que no he podido llegar a leer la cuarta linea! jaja...
  #4 (permalink)  
Antiguo 26/12/2007, 16:34
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Re: Problemas con clone

Me parece que le problema surge porque no estas pasando copias del objeto, sino mas bien estás pasando la referencia del objeto ListaCaracteres. Es por esto que cuando modificas en algún lugar este objeto, se modifica en todos lados ya que en todos lados tiene el mismo objeto.

Quizás viendo la parte relevante de las clases te podríamos ayudar.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:55.