Java contiene muchas clases (como en Swing) que implementan el dreaded and error proneinterface Serializable
.¿Cuál es una buena manera de hacer que una clase sea deserializable?
Si se implementa, por ejemplo, un nuevo TableModel
extendiendo AbstractTableModel
, el nuevo modelo debe ser serializable pero lo que si contiene tipos de datos internos que no son serializables, y que no tiene que ser ya no piensa para usar esta característica de todos modos?
En tal caso, herramientas como Sonar enloquecen. Los dos se quejan de que "Clase Foo
define el campo de instancia no transitoria no serializable bar
".
así que hago ese campo transient
sólo para "El campo Foo.bar
es transitorio, pero no se establece de deserialización"
¿Es posible decir "No, esta clase no es serializable, y yo don' ¿Quieres que sea "de tal manera que no obtienes ningún error en herramientas como Sonar?
¿El Sónar apoyo supresión de una advertencia para una clase individual? En IntelliJ le da la opción de agregar un @SuppressWarning a la clase para usted para este control. –
Sonar simplemente ejecuta FindBugs, PMD y CheckStyle en su código y agrega los resultados. Entonces, una solución que mantenga a esos tres callados me funcionaría. '@ SuppressWarning' funciona como se esperaba. También hay complementos que permiten ignorar las advertencias por elementos como el nombre del archivo, la ruta o el patrón de cadena. –
¿No es eso lo que es "transitorio"? – EJP