serialVersionUID

gordenay
08 de Diciembre del 2005
Buenas!

me gustaria saber que es, o para que sirve el serialVersionUID, He buscado por manuales y google y no pone ninguna definicion.

Estoy trabajando con eclipse 3.1 y me da un warning diciendo que no tiene serialVersionUID.

El programa funciona igual, tanto si tiene como no tiene, por lo que no debe ser muy grave.

Muchas gracias!

chuidiang
08 de Diciembre del 2005
Hola:

Yo tampoco sé para qué sirve, pero te cuento lo que creo. Es posible que esté equivocado.

El eclipse sólo protesta con los serial uid para las clases que implementan Serializable o algún interface que a su vez hereda de Serializable.

Las clases Serializable pueden enviarse a través de un socket o escribirse en un fichero automáticamente, de forma que alguien en el otro lado puede recogerlas.

El serial uid me hace la impresión de que es para garantizar (o al menos poder comprobar) en ambos lados que el que escribe la clase y el que la recibe tienen la misma versión de la clase, evitando así problemas de serialización.

Imagina que haces una clase A serializable y haces dos programas, uno que la envia y el otro que la recibe. Ambos deben ver el fichero A.class

Ahora en el que envia la clase haces una modificaciones y modificas la clase A. En el otro lado te olvidas de actualizarla. Cuando pongas los programas en marcha, tendrás problemas ya que uno envia una clase A de una manera y el otro intenta recibirla de otra.

Imagino que el serial uid debería regenerarse cada vez que hagas una nueva versión de clase y así se comprobaría en el momento de recibirlo, que el recibido coincide con el de la versión que se tiene.

Se bueno.

chuidiang
08 de Diciembre del 2005
Hola:

He estado mirando un poco y en http://java.sun.com/j2se/1.4.2/docs/guide/serialization/spec/class.html habla algo de ello.

Se bueno.