Resolvendo o alerta de serialVersionUID

Olá pessoal…

Hoje irei mostrar como resolver o alerta de perigo para o serialVersionUID em Java.


Esse alerta de perigo pessoal, é quando a classe pode ser chamada mais de uma vez por outras classes e ela precisa de um código identificador (ID), basicamente, quando há alguma chamada para Serializable via input output de arquivos pode haver esse problema, ou até mesmo com algumas chamadas de lista encadeada.

Por exemplo, ao compilar a classe com o -Xlint no final para verificar os warnings é mostrado o seguinte erro:

...> javac ClasseTst.java -Xlint
...warning: [serial] serializable class ClasseTst has no 
definition of serialVersionUID
...public class ClasseTst {
...       ^
...1 warning

Ou seja, para resolver esse problema, crie uma variável estática do tipo long com o nome serialVersionUID.

//Classe teste
public class ClasseTst{
  //Quando instanciando um io que pode chamar a Serializable, deve-se criar um endereço para o serialVersionUID (ex.: java.io.*)
  public static final long serialVersionUID = 100;

  //função principal que será carregada
  public static void main(String arg[]){
    System.out.printf("\n> Código: %d\n", serialVersionUID);
  }
}


O valor pode ser qualquer um. Abaixo uma imagem exemplificando a execução do programa.

Resultado da execução

Resultado da execução

Bom pessoal, por hoje é só.
Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação