ti-enxame.com

como remover o aviso A classe serializável ClASSNAME não declara um campo serialVersionUID final estático do tipo long

Eu crio uma classe que estende a classe Exception, recebi este aviso no Eclipse

A classe serializável PhoneAlreadyExists não declara um campo estático final serialVersionUID do tipo long

como removê-lo por favor?

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

    PhoneAlreadyExists(String message) {
        super(message);
    }

}
17
user2059935

Adicione uma anotação @SuppressWarnings("serial") à sua classe, para ignorar esse aviso

11
Arsen Alexanyan

Para alterar o comportamento no Eclipse globalmente: Vá para Preferências-> Java -> Compilador -> Erros/Avisos-> Problemas Potenciais de Programação. Há uma entrada para esse problema específico. Você também pode alterá-lo para um projeto específico.

Isso responde à sua pergunta, embora - eu recomendo deixá-la no nível de aviso e adicione os campos ausentes. Ou adicione a anotação SuppressWarnings às classes serializáveis ​​que realmente não precisam do campo porque elas nunca serão serializadas.

22
Andreas_D

Você precisa declarar um campo estático final serialVersionUID do tipo long.

Procure a API Serializable de Java. As exceções devem implementar as classes Serializable e Serializable devem ter um serialVersionUID:

public static final long serialVersionUID = 1L;

Sempre que você fizer alterações incompatíveis na classe, incremente esta versão.

8
Has QUIT--Anony-Mousse

Para ignorar o aviso "A classe serializável ClASSNAME não declara um serialVersionUID final estático ......", faça o seguinte dentro do Eclipse *:

  1. Clique em Janela-Preferências-Java-Compilador-Erros/Avisos
  2. Clique em "Problemas Potenciais de Programação"
  3. Role para baixo até "Classe serializável sem serialVersionUID"
  4. Escolha "Ignorar"
  5. Clique em Aplicar
  6. Clique OK

Salve e feche o Eclipse IDE Ao reabrir o Eclipse, esses avisos específicos não devem mais ser listados.

* Para este exemplo de solução, estou usando o Eclipse IDE for Java Developers - Versão: Mars.2 Release (4.5.2))

2
Mark Burleigh

basta adicionar este código @SuppressWarnings ("serial") acima da sua classe pública PhoneAlreadyExists extends Exception {line

1
ramesh

É melhor adicionar o serialversionUID na maioria dos casos, mas o Eclipse fornece o aviso em todas as classes derivadas do swing, que nunca serão serializadas. Tentei alterar a configuração em Preferências-> Java -> Compilador -> Erros/avisos -> Possíveis problemas de programação, mas não teve efeito. Portanto, acho que a melhor solução seria suprimir o aviso em cada classe que nunca será serializada; ou cerre os dentes e ignore o aviso.

1
Dave Neuendorf