que tiene la firma siguiente clase y ClientEventSourc
implementa Serializable
:Comprensión de FindBugs que advierten sobre el campo serialVersionUID
public class Grid extends ClientEventSource implements Focusable, FramingBlockWrapper,LIMSEditableField
Ahora FindBugs está enumerando esto como poco fiables:
clase es Serializable, pero no define serialVersionUID
Esta clase implementa el Serializable interfaz, pero no define un campo serialVersionUID. Un cambio tan simple como agregar una referencia a un objeto .class agregará campos sintéticos a la clase, que lamentablemente cambiará el serialVersionUID implícito (por ejemplo, agregar una referencia a String.class generará un campo estático clase $ java $ lang $ String). Además, diferentes compiladores de código fuente a bytecode pueden usar diferentes convenciones de nomenclatura para las variables sintéticas generadas para referencias a objetos de clase o clases internas. Para garantizar la interoperabilidad de Serializable en todas las versiones, considere agregar un explícito serialVersionUID.
¿Puede alguien explicar lo que significa y cuál es la mejor manera de solucionarlo?
¿Hay algún algoritmo/programa que genere este número? Me refiero a si puede ser cualquier cosa o si necesita seguir ciertas mejores prácticas, ya que hashcode() hace lo que se describe en el libro efectivo de Java e implementado en EqualsBuilder y HashCodeBuilder desde apache commons. – Geek
Este número puede ser cualquier cosa, siempre que sea único entre sus clases serializadas. Eclipse f.e. tiene su propio generador, pero puedes usar cualquier número. – Kostronor