Tengo varias clases serializables que fueron compiladas sin especificar un serialVersionUID. Ahora necesito agregar algunos miembros de datos a estas clases, pero deseo conservar algunos objetos ya serializados.¿Cómo puedo averiguar el serialVersionUID de un objeto Java serializado?
¿Hay alguna forma de averiguar el serialVersionUID de estos objetos serializados para que pueda especificar el mismo ID en el código fuente?
¡Asegúrese de hacer esto con la misma JVM exacta que usó para compilar originalmente el código! – Eddie
Esto también debería funcionar en una JVM diferente, porque de lo contrario los archivos de clase y los objetos serializados no serían portátiles en las JVM (que sí lo son). – Thilo
La especificación de Serialización de objetos Java, sección 4.6, explica cómo serialVersionUID puede no ser compatible con las JVM en el caso de las clases internas, debido a las implementaciones que generan diferentes nombres para los miembros sintéticos. He visto esto suceder en la práctica, incluso con dos JVM de Sun. – Martin