2014-07-04 11 views
36

Quando ho usato Eclipse aveva una funzione utile per generare UID versione seriale.Come generare UID versione seriale in Intellij

Ma cosa fare in IntelliJ?

Come scegliere o generare UID versione seriale identica in IntelliJ?

E cosa fare quando si modifica la vecchia classe?

Se non avete specificare il id, si è generato a runtime ...

+0

Qual è lo scopo dell'UID? Da parte mia trovo che sia inutile – JFB

+1

Duplicato di http://stackoverflow.com/questions/12912287/intellij-idea-generating-serialversionuid –

+0

@JFIB La costante di classe 'serialVersionUID' viene generata dal compilatore quando non viene specificata. Specificare ha il vantaggio (e il pericolo) di mantenere identico l'id per le versioni di classe cambiate. Questo è un file con un oggetto della vecchia versione che verrà letto (deserializzato) con la nuova versione o viceversa. –

risposta

111

Senza alcun plugin:

Hai solo bisogno di abilitare highlight: (Idea v .2016 e 2017, le versioni precedenti potrebbero avere impostazioni uguali o simili)

File -> Impostazioni -> Editor -> Ispezioni -> Java -> Problemi di serializzazione - > Classe serializzabile senza 'serialVersionUID' - imposta flag e clicca 'OK'.

Ora, se la classe implementa Serializable, vedrete evidenziare e Alt + Invio sul nome della classe proporrà per generare private static final long serialVersionUID.

+0

@SalilJunior Non proprio. La capacità incorporata di generare un serialVersionUID è legata agli avvisi di ispezione. Sei bloccato quando non vuoi abilitare l'avviso di ispezione ma genera serialVersionUID in alcuni casi. –

+0

Questa soluzione non funziona per me, posso solo vedere le opzioni: rimuovere l'implementazione Parcelable, sostituire l'implementazione parcelable, creare test, creare sottoclassi e rendere package-private. La classe sto usando gli attrezzi Parcelable e Serializable allo stesso tempo. Qualche idea? – gonver

+0

Hai verificato che il flag necessario è impostato nelle impostazioni sopra? Testato in entrambe le idee v16 e v17, funziona bene. Controllare anche le impostazioni aggiuntive per tale ispezione dopo aver fatto clic su di esso nella finestra delle impostazioni (a destra). –

27

Installare GenerateSerialVersionUID plug

+0

Perché installare un plugin quando questo può essere fatto facilmente come mostrato da @Serhii qui sotto. – shaz

+2

@shaz Preferisco quando quell'ispezione è disabilitata, ma per alcune classi è richiesto esplicitamente serialVersionUID. Non voglio ispezioni distrattive su ogni classe mentre ho bisogno di serialVersionUID solo per uno. – Timofey

1

IntelliJ IDEA Plugins/GenerateSerialVersionUID https://plugins.jetbrains.com/plugin/?idea&id=185

molto bello, molto facile da installare. puoi installarlo dal menu plugin, selezionare installa da disco, selezionare il file jar che hai decompresso nella cartella lib. restart, control + ins, e si apre per generare UID seriale dal menu. lo adoro. :-)

+0

@PatchRhytm la tua risposta è un duplicato. Si prega di eliminarlo. –

Problemi correlati