viewmap valor uso serialización serializacion que objetos interfaz funciona funcion estructurados deserializacion definiendo datos cómo atributo java

java - valor - cómo eliminar la advertencia La clase serializable ClASSNAME no declara un campo estático final serialVersionUID de tipo long



serialversionuid que es (6)

Esta pregunta ya tiene una respuesta aquí:

Creo una clase que extiende la clase de Exception . Recibí esta advertencia en Eclipse.

La clase serializable PhoneAlreadyExists no declara un campo estático final serialVersionUID de tipo long

¿Cómo quitarlo por favor?

public class PhoneAlreadyExists extends Exception { public PhoneAlreadyExists() { // TODO Auto-generated constructor stub super(); } PhoneAlreadyExists(String message) { super(message); } }


Agregue una anotación @SuppressWarnings("serial") en su clase, para ignorar esa advertencia.


Debe declarar un campo estático final serialVersionUID de tipo long.

Busque la API Serializable de Java. Las excepciones deben implementar las clases Serializable y Serializable deben tener un serialVersionUID :

public static final long serialVersionUID = 1L;

Siempre que realice cambios incompatibles en la clase, incremente esta versión.


Es mejor agregar el serialversionUID en la mayoría de los casos, pero eclipse muestra la advertencia en todas las clases derivadas de swing, que nunca se serializarán. Intenté cambiar la configuración en Preferencias-> Java -> Compilador -> Errores / advertencias -> Problemas potenciales de programación, pero no tuvo efecto. Entonces, supongo que la mejor solución sería suprimir la advertencia en cada clase que nunca se serializará; O rechinar los dientes e ignorar la advertencia.


Para cambiar el comportamiento en eclipse global: Vaya a Preferencias-> Java-> Compilador- > Errores / Advertencias-> Problemas potenciales de programación. Hay una entrada para este problema específico. Puedes cambiarlo para un proyecto específico también.

Sin embargo, eso responde a su pregunta: recomiendo dejarla en el nivel de advertencia y agregar los campos que faltan. O agregue la anotación SuppressWarnings a aquellas clases serializables que realmente no necesitan el campo porque nunca serán serializadas.


Para ignorar la advertencia "La clase serializable ClASSNAME no declara un serialVersionUID final estático ......" haga lo siguiente dentro de eclipse *:

  1. Haga clic en Ventana-Preferencias-Java-Compilador-Errores / Advertencias
  2. Haga clic en "Problemas potenciales de programación"
  3. Desplácese hacia abajo hasta "Clase serializable sin serialVersionUID"
  4. Elija "Ignorar"
  5. Haga clic en Aplicar
  6. Haga clic en Aceptar

Guarde y cierre su IDE de eclipse. Cuando vuelva a abrir eclipse, estas advertencias específicas ya no deberían aparecer en la lista.

* Para esta solución de ejemplo, estoy usando Eclipse IDE para desarrolladores de Java - Versión: Mars.2 Release (4.5.2)


simplemente agregue este código @SuppressWarnings ("serial") sobre su clase pública PhoneAlreadyExists extiende la Excepción {línea