当我使用Eclipse时,它具有很好的功能来生成串行版本的UID。
但是在IntelliJ中该怎么办?
如何在IntelliJ中选择或生成相同的串行版本UID?
修改旧类该怎么办?
如果您未指定id
,则会在运行时生成...
serialVersionUID
未指定时由编译器生成类常量。指定具有使更改的类版本的ID相同的优点(和危险)。也就是说,具有旧版本对象的文件将与新版本一起读取(反序列化),反之亦然。
当我使用Eclipse时,它具有很好的功能来生成串行版本的UID。
但是在IntelliJ中该怎么办?
如何在IntelliJ中选择或生成相同的串行版本UID?
修改旧类该怎么办?
如果您未指定id
,则会在运行时生成...
serialVersionUID
未指定时由编译器生成类常量。指定具有使更改的类版本的ID相同的优点(和危险)。也就是说,具有旧版本对象的文件将与新版本一起读取(反序列化),反之亦然。
Answers:
没有任何插件:
您只需要启用突出显示:(Idea v.2016、2017和2018,以前的版本可能具有相同或相似的设置)
文件->设置->编辑器->检查-> Java->序列化问题->没有'serialVersionUID'的可序列化类-设置标志并单击'确定'。(对于Mac,设置位于IntelliJ IDEA->首选项下。)
现在,如果您的课程实现了Serializable
,您将看到高亮显示,并在类别名称上建议使用alt + Enter生成private static final long serialVersionUID
。
UPD:一种更快的查找此设置的方法-您可以使用热键Ctrl+Shift+A
(查找操作),键入Serializable class without 'serialVersionUID'
-第一个是一个。
最简单的方法:Alt
+ Enter
开
private static final long serialVersionUID = ;
IntelliJ将在=
。之后加下划线。将光标放在其上,然后按alt
+ Enter
(在Mac上为Option
+ Enter
)。您将看到一个弹出窗口,显示“随机更改serialVersionUID初始化程序”。只需按回车键,它将以随机长填充该空间。
serialVersionUID
。当您更新了子类并需要为该类生成一个新的serialVersionUID而不更改父类的serialVersionUID时(在未对父类进行任何更改的情况下),这可以解决这种情况。
IntelliJ IDEA插件/ GenerateSerialVersionUID https://plugins.jetbrains.com/plugin/?idea&id=185
非常好,非常容易安装。您可以从插件菜单进行安装,选择从磁盘安装,然后在lib文件夹中选择解压缩的jar文件。重新启动,按Control + ins,然后弹出以从菜单生成串行UID。爱它。:-)