O NetBeans pode gerar um ID automático de versão serial para uma classe Java?
-
21-09-2019 - |
Pergunta
Gostaria de remover alguns avisos para algumas classes, gerando um ID automático da versão serial. No Eclipse, isso é trivial - o IDE pode gerar um automaticamente e adicioná -lo à classe. No entanto, não vejo essa funcionalidade no NetBeans. Está disponível? Se sim, onde está? Caso contrário, existe um plugin que pode ativá -lo?
Solução
Na verdade, minha solução para esse "problema" era Desative esse aviso Na minha configuração do projeto (eu uso o Eclipse, mas acho que para o NetBeans é o mesmo), pois o IMHO é um aviso errado: não tendo Uma verificação serial é a escolha mais segura, porque a JVM calcula uma que é única no lançamento (algo como o hash da classe) enquanto a adiciona explicitamente depois sobrecarrega vocês Para tomar cuidado para atualizá -lo se e somente se você fizer alterações incompatíveis no seu código.
Portanto, se você não se importa com isso, é melhor evitar esse valor (dessa maneira é compatível apenas com a versão compatível com certeza, mas com alguns falsos positivos: acha que isso não é compatível, mas na verdade seria) em vez de colocar um valor fixo que você (provavelmente, no meu caso) esquecesse de atualizar quando necessário, levando a erros de validade reais (false -Egativos: pensa que é compatível, mas não é).
Outras dicas
Isso também é trivial fazer manualmente, a menos que você precise permanecer compatível com as instâncias serializadas existentes. Basta copiar esta linha para a classe:
private static final long serialVersionUID = 1L;
Observe que não há absolutamente nenhum requisito para o serialVersionUID
para ser único nas aulas.
Para desativar esses avisos em Netbeans:
- Aberto: Ferramentas -> Opções
- Aberto: Editor -> Guia Dicas
- Selecione Idioma: Java
- Desmarcar avisos Javac padrão -> Serialização
- OK
Eu também tive que limpar ~/.NetBeans/6.8/var/cache e reiniciar o NetBeans para limpar os avisos da lista de tarefas.
(Para o usuário, onde faça a mesma pergunta agora)
Estou usando o NB7.4 e encontrei este plugin de NB6.5 a NB7.4
plugar
Eu o testei no NB7.4 e fui bem. Para o significado da versão de servidor, veja
SerialversionUid
Se você adicioná -lo explicitamente, poderá fazer toda a sua classe sem mudar o UID até que você não tenha sua classe serializada e armazenar em algum lugar: se você criar a classe A serializá -la
termine, então armazene -o no banco de dados
final então altere a classe A não tornando mais compatível com a antiga classe A,
Quando alguém tenta carregar o objeto serializado da última classe A para a nova classe A, ele pode ter problemas.
Quando você altera a classe A e a torna incompatível com a última classe A, você precisa alterar o UID; portanto, se alguém tentar carregá -lo, será invalidado.