¿Qué hace serialVersionUID?
La función de serialVersionUID:
Para mantener la compatibilidad de la versión durante la serialización, es decir, la deserialización aún mantiene la unicidad del objeto cuando se actualiza la versión.
Hay dos métodos de generación:
Uno es el 1L predeterminado, por ejemplo: private static final long serialVersionUID = 1L;
El otro se basa en el nombre de clase y nombre de interfaz, métodos y atributos de miembro, etc. para generar un campo hash de 64 bits, por ejemplo:
privado estático final largo serialVersionUID = xxxxL;
Cuando una clase implementa la interfaz Serializable. Si serialVersionUID no está definido, Eclipse proporcionará esta función de aviso
para indicarle que lo defina. En Eclipse, haga clic en el ícono de advertencia en la clase y Eclipse
proporcionará automáticamente dos métodos de generación. Si no desea definirlo, puede desactivarlo en la configuración de Eclipse.
Las configuraciones son las siguientes:
Ventana ==> Preferencias ==> Java =. => Compilador == > Error/Advertencias ==>
Posibles problemas de programación
Simplemente cambie la advertencia de la clase Serializable sin serialVersionUID para ignorarla.
Si no considera problemas de compatibilidad, simplemente desactívelo. Sin embargo, es bueno tener esta función siempre que alguna categoría implemente la interfaz Serializable, si no está agregada.
serialVersionUID, Eclipse le dará un mensaje de advertencia. Este serialVersionUID es para hacer que esta categoría sea serializable y compatible con versiones anteriores.
Si su clase está serializada y guardada en el disco duro, pero luego cambia el campo de la clase (agregar, reducir o cambiar el nombre), se producirá una excepción al deserializar, lo que causará problemas de incompatibilidad. .
Pero cuando serialVersionUID es el mismo, deserializará diferentes campos con el valor predeterminado de tipo, lo que puede evitar problemas de incompatibilidad.