java - serializacion - advertencia: clase serializable[serial] SomeClass no tiene definición de serialVersionUID
serialversionuid generator (3)
Aunque esta clase no está destinada a ser serializable, ¡recibo esta advertencia inusual! ¿Podría alguien decirme si te has encontrado con una advertencia tan extraña?
C:/Documents and Settings/...filename.java:60: warning: [serial] serializable class SomeClass has no definition of serialVersionUID
public class NewPortalConnection extends javax.swing.JFrame {
Saludos
Esta advertencia aparece cuando deriva de una clase que implementa Serializable. En su caso, la clase primaria Serializable es JFrame.
Puede suprimir esta advertencia con @SuppressWarnings ("serial"), o darle a la clase un serialVersionUID: private static final long serialVersionUID = ...;
(con un valor largo para los puntos).
Aquí hay una discussion sobre SO, que es preferible.
Si sabe que su aplicación nunca serializa cosas, aquí hay una manera de suprimir la advertencia por completo.
Agregue -Xlint:-serial
a los argumentos de línea de comando de javac
. Por ejemplo,
javac -Xlint -Xlint:-serial *****
De esta forma tendrá todas las advertencias excepto "serial".
JFrame
implementa Serializable, por lo que todas las clases extendidas también implementan Serializable.
Aquí hay un tutorial sobre Serializable y serialVersionUID , pero para comprender realmente el tema, debe leer el Capítulo 11 de Effective Java (2nd Ed) de Joshua Bloch.