2010-02-13 9 views
33

duplicados posibles:
Why should I bother about serialVersionUID?
what is a serial version id?¿Qué es la Id. De versión de serie en Java?

Cuando creé una nueva clase que se extiende java.util.logging.Level en Eclipse, Me pidió que añadir un defecto o se generan en serie ID de la versión. Acabo de agregar a ciegas sin saber qué es y por qué tengo que agregarlo.

¿Alguien puede decirme qué es y por qué es necesario?

+3

duplicados: http://stackoverflow.com/questions/615181/what-is-a-serial-version-id, http://stackoverflow.com/questions/285793/why-should-i-molesta-sobre-serialversionuid – Bozho

Respuesta

34

La ID de la versión en serie se utiliza al serializar y deserializar un objeto. Java reconoce si los bytes que desea deserializar coinciden con la versión de clase local. Si no, lanzará una excepción.

Esto es importante cuando se hace RMI o estructuras persistentes de objetos.

Hay una muy buena descripción sobre la serialización en el javadoc of Serializable.

12

Es el identificador único de la clase, utilizado para la serialización.

Es aconsejable declararlo si está serializando lo antes posible porque si no declara uno, al cambiar la clase obtendrá uno diferente generado automáticamente y la serialización dejará de funcionar.

Una buena referencia es aquí: http://c2.com/ppr/wiki/JavaIdioms/AlwaysDeclareSerialVersionUid.html

Cuestiones relacionadas