Me he encontrado con la comprensión de la serialización de Java. He leído en muchos documentos y libros que las variables estáticas y transitorias no se pueden serializar en Java. Declaramos un serialVersionUid de la siguiente manera.Son variables estáticas serializadas en el proceso de serialización
private static final long serialVersionUID = 1L;
Si una variable estática no se serializó, a menudo nos enfrentamos a una excepción durante el proceso de deserialización.
java.io.InvalidClassException
en la que se extrae y se compara con la serialVersionUID de la clase cargada la serialVersionUID desde el objeto deserializado.
Que yo sepa, creo que si las variables estáticas no se pueden serializar. No tiene sentido esa excepción. Puedo estar equivocado porque todavía estoy aprendiendo.
Es un mito que "las variables estáticas y transitorias en java no se pueden serializar". Por favor corrígeme, estoy en un lío acerca de este concepto.
¿Qué significa el término variable estática especial? – srk
Significa que es una variable estática que es especial. (Específicamente, se trata de manera diferente a otras variables estáticas en la serialización). –
Es especial, porque el mecanismo de serialización busca esta variable estática para saber cuál es el UID de la versión en serie de la clase. Todas las otras variables estáticas simplemente son ignoradas por el mecanismo de serialización. –