How to generate serial version UID in Intellij

JavaSerializationIntellij Idea

Java Problem Overview


When I used Eclipse it had a nice feature to generate serial version UID.

But what to do in IntelliJ?

How to choose or generate identical serial version UID in IntelliJ?

And what to do when you modify old class?

If you haven't specify the id, it is generated at runtime...

Java Solutions


Solution 1 - Java

Without any plugins:

You just need to enable highlight: (Idea v.2016, 2017 and 2018, previous versions may have same or similar settings)

>File -> Settings -> Editor -> Inspections -> Java -> Serialization issues -> Serializable class without 'serialVersionUID' - set flag and click 'OK'. (For Macs, Settings is under IntelliJ IDEA -> Preferences...)

Now, if your class implements Serializable, you will see highlight and alt+Enter on class name will ask you to generate private static final long serialVersionUID.

UPD: a faster way to find this setting - you might use hotkey Ctrl+Shift+A (find action), type Serializable class without 'serialVersionUID' - the first is the one.

Solution 2 - Java

Easiest method: Alt+Enter on

private static final long serialVersionUID = ;

IntelliJ will underline the space after the =. put your cursor on it and hit alt+Enter (Option+Enter on Mac). You'll get a popover that says "Randomly Change serialVersionUID Initializer". Just hit enter, and it'll populate that space with a random long.

Solution 3 - Java

Install GenerateSerialVersionUID plugin

Solution 4 - Java

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

very nice, very easy to install. you can install that from plugins menu, select install from disk, select the jar file you unpacked in the lib folder. restart, control + ins, and it pops up to generate serial UID from menu. love it. :-)

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questioncatch23View Question on Stackoverflow
Solution 1 - JavaSerhii MaksymchukView Answer on Stackoverflow
Solution 2 - JavajeremysprofileView Answer on Stackoverflow
Solution 3 - JavaMeoView Answer on Stackoverflow
Solution 4 - JavaPatch RhythmView Answer on Stackoverflow