Quando usei o Eclipse, ele tinha um bom recurso para gerar o UID da versão serial.
Mas o que fazer no IntelliJ?
Como escolher ou gerar UID de versão serial idêntica no IntelliJ?
E o que fazer quando você modifica a classe antiga?
Se você não especificou o id
, ele é gerado em tempo de execução ...
java
serialization
intellij-idea
nazar_art
fonte
fonte
serialVersionUID
é gerada pelo compilador quando não especificada. A especificação tem a vantagem (e o perigo) de manter o id idêntico para as versões de classe alteradas. Ou seja, um arquivo com um objeto da versão antiga será lido (desserializado) com a nova versão ou vice-versa.Respostas:
Sem quaisquer plug-ins:
Você só precisa habilitar o destaque: (Idea v.2016, 2017 e 2018, versões anteriores podem ter configurações iguais ou semelhantes)
Agora, se sua classe implementa
Serializable
, você verá o destaque e alt + Enter no nome da classe proporá gerarprivate static final long serialVersionUID
.UPD: uma maneira mais rápida de encontrar essa configuração - você pode usar o atalho
Ctrl+Shift+A
(localizar ação), digiteSerializable class without 'serialVersionUID'
- o primeiro é o único.fonte
Método mais fácil:
Alt
+Enter
onO IntelliJ irá sublinhar o espaço após o
=
. coloque o cursor sobre ele e pressionealt
+Enter
(Option
+Enter
no Mac). Você obterá um popover que diz "Randomly Change serialVersionUID Initializer". Basta clicar em Enter e preencherá aquele espaço com um longo aleatório.fonte
Instalar o plugin GenerateSerialVersionUID
fonte
serialVersionUID
. Isso resolve o caso quando você atualizou a classe-filha e precisa gerar um novo serialVersionUID para esta classe sem alterar o serialVersionUID da classe-pai (nos casos em que nenhuma alteração foi feita na classe-pai).Plug-ins IntelliJ IDEA / GenerateSerialVersionUID https://plugins.jetbrains.com/plugin/?idea&id=185
muito bom, muito fácil de instalar. você pode instalar a partir do menu de plug-ins, selecionar instalar do disco, selecionar o arquivo jar que você descompactou na pasta lib. reinicie, control + ins e aparecerá para gerar UID serial a partir do menu. adoro. :-)
fonte
com no editor de código, abra a classe para a qual deseja criar o UID, clique com o botão direito -> Gerar -> SerialVersionUID. Pode ser necessário ter o plug-in GenerateSerialVersionUID instalado para que isso funcione.
fonte