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

[SOLUCIONADO] Problema con la serializacion de objetos

Estas en el tema de Problema con la serializacion de objetos en el foro de Java en Foros del Web. Hola a todos, tengo el siguiente problema con un trabajo de la universidad: Resulta que tengo 3 clases, una clase llamada Principal, y otras 2 ...
  #1 (permalink)  
Antiguo 05/08/2013, 16:28
 
Fecha de Ingreso: agosto-2013
Mensajes: 6
Antigüedad: 10 años, 9 meses
Puntos: 0
Problema con la serializacion de objetos

Hola a todos, tengo el siguiente problema con un trabajo de la universidad:
Resulta que tengo 3 clases, una clase llamada Principal, y otras 2 clase Actor y clase Pelicula.

Código Java:
Ver original
  1. public class Principal{
  2.     private Pelicula peliculas[];
  3.     private Actor actores[];
  4.    
  5.     public Principal(){
  6.         peliculas=new Pelicula[n];
  7.         actores=new Actor[m];
  8.     }
  9.     //Operaciones
  10.     //Metodos de serializacion y deserializacion
  11. }

Código Java:
Ver original
  1. public class Actor implements Serializable{
  2.     private Pelicula peliculas[];
  3.     //otros atributos
  4.    
  5.     public Actor(){
  6.     peliculas=new Pelicula[n];
  7.     }
  8.     //Metodos get y set
  9. }

Código Java:
Ver original
  1. public class Pelicula implements Serializable{
  2.     private String titulo;
  3.     //otros atributos
  4.    
  5.     public Pelicula(){
  6.     titulo="";
  7.     }
  8.     //Metodos get y set
  9. }

La clase Actor posee un vector de peliculas para tener referencias a cada pelicula en la que el actor supuestamente ha actuado, estas peliculas son tomadas del vector peliculas de la clase Principal.
Poseo un panel en el que se muestra una ficha de actor, y esta ficha tiene un jTable que muestra el nombre de las peliculas en las que ha participado el actor.
Luego cuando edito algun atributo de alguna pelicula de la clase Principal (por ejemplo el nombre) que estaba asociada a algun actor y luego veo la ficha de actor, el nombre se ha editado correctamente.
El problema viene al momento de serializar los objetos y posteriormente deserializarlos, pues pareciera que las referencias se pierden, pues cuando edito alguna pelicula de la clase principal y luego voy a revisar la ficha de actor el nombre de dicha pelicula no se ha editado.
Quisiera saber si me pueden ayudar con este problema, gracias.
  #2 (permalink)  
Antiguo 06/08/2013, 01:15
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Problema con la serializacion de objetos

¿Cómo modificas y cómo serializas/deserializas?

Ten en cuenta que principal no es serializable.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 07/08/2013, 18:19
 
Fecha de Ingreso: agosto-2013
Mensajes: 6
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Problema con la serializacion de objetos

Para serializar y deserializar utilizo la clases ObjectOutputStream e ObjectInputStream con los metodos writeObject y readObject haciendo iteraciones a lo largo de cada uno de los vectores.
Olvide ponerle el serializable al momento de colocarlo aquí en el tema, en realidad la clase Principal si es serializable. Tienes alguna idea de qué podría estar pasando?
  #4 (permalink)  
Antiguo 08/08/2013, 00:22
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Problema con la serializacion de objetos

Me refería a que pusieras el trozo de código donde lo haces.

Las clases que has puesto aparentemente están bien
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #5 (permalink)  
Antiguo 08/08/2013, 22:10
 
Fecha de Ingreso: agosto-2013
Mensajes: 6
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Problema con la serializacion de objetos

Código Java:
Ver original
  1. public void guardarListaActores() {
  2.         try{
  3.             ObjectOutputStream flujoSalida=new ObjectOutputStream(new FileOutputStream("listaActores.obj"));
  4.             Integer nObjetos=new Integer(actores.length);
  5.             flujoSalida.writeObject(nObjetos);
  6.             for(Actor actor : actores){
  7.                 flujoSalida.writeObject(actor);
  8.             }
  9.             flujoSalida.close();
  10.         }
  11.         catch(IOException e){
  12.         }
  13.     }

Código Java:
Ver original
  1. public void cargarListaActores() throws ClassNotFoundException, IOException{
  2.         try{
  3.             ObjectInputStream flujoEntrada=new ObjectInputStream(new FileInputStream("listaActores.obj"));
  4.             int n=((Integer)flujoEntrada.readObject()).intValue();
  5.             for(int i=0 ; i<n ; i++){
  6.                 Actor actor=(Actor)flujoEntrada.readObject();
  7.                 agregarActor(actor);  //Clase que se encarga de la insercion del objeto en el vector
  8.             }
  9.             flujoEntrada.close();
  10.         }
  11.         catch(FileNotFoundException e){
  12.            
  13.         }
  14.         catch(IOException e){
  15.            
  16.         }
  17.        
  18.     }

De la misma manera hago con la lista de objetos Pelicula
  #6 (permalink)  
Antiguo 09/08/2013, 01:31
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Problema con la serializacion de objetos

Aparentemente está bien, pero si tienes los catch vacíos ¿cómo te vas a enterar cuando haya un error?

Tú código parece (son trozos) estar mal pensado, para mí no tienen sentido tus modelos de datos y sus constructores. Me da la impresión de que está saltándote un Nullpointer y no te enteras.

Lo he probado y funciona, pero he tenido que cambiar cosas.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #7 (permalink)  
Antiguo 12/08/2013, 22:24
 
Fecha de Ingreso: agosto-2013
Mensajes: 6
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Problema con la serializacion de objetos

Ok amigo, gracias, voy a agregar algun mensaje a los catch para ver si algun error esta habiendo...

Etiquetas: clase, jtable, objetos, string
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 19:37.