【问题标题】:How to generate serial version UID in Intellij如何在 Intellij 中生成串行版本 UID
【发布时间】:2014-08-25 18:06:27
【问题描述】:

当我使用 Eclipse 时,它有一个很好的功能来生成串行版本的 UID。

但是在 IntelliJ 中该怎么做呢?

如何在 IntelliJ 中选择或生成相同的序列号版本 UID?

当你修改旧类时该怎么办?

如果没有指定id,则在运行时生成...

【问题讨论】:

标签: java serialization intellij-idea


【解决方案1】:

没有任何插件:

您只需要启用突出显示:(Idea v.2016、2017 和 2018,以前的版本可能具有相同或相似的设置)

文件 -> 设置 -> 编辑器 -> 检查 -> Java -> 序列化问题 -> 没有“serialVersionUID”的可序列化类 - 设置标志并单击“确定”。 (对于 Mac,设置位于 IntelliJ IDEA -> Preferences...)

现在,如果您的类实现了Serializable,您将看到高亮显示,并且类名上的 alt+Enter 将要求您生成 private static final long serialVersionUID

UPD:查找此设置的更快方法 - 您可以使用热键 Ctrl+Shift+A(查找操作),键入 Serializable class without 'serialVersionUID' - 第一个就是那个。

【讨论】:

  • @SalilJunior 不是真的。生成 serialVersionUID 的内置功能与检查警告相关联。当您不想启用检查警告但在某些情况下生成 serialVersionUID 时,您会陷入困境。
  • 这个解决方案对我不起作用,我只能看到选项:删除 Parcelable 实现,替换 Parcelable 实现,创建测试,创建子类和使包私有。我使用的类同时实现了 Parcelable 和 Serializable。有什么想法吗?
  • 您是否检查过在上面的设置中设置了需要的标志?在 v16 和 v17 的想法中测试,工作正常。在设置窗口(右侧)中单击后,还要检查此类检查的其他设置。
  • 我不知道这个并且觉得很有帮助。
【解决方案2】:

最简单的方法:Alt+Enter开启

private static final long serialVersionUID = ;

IntelliJ 将在= 之后的空格加下划线。将光标放在上面并点击alt+Enter(Mac 上为Option+Enter)。你会得到一个弹出窗口,上面写着“Randomly Change serialVersionUID Initializer”。只需按 Enter 键,它就会用随机长度填充该空间。

【讨论】:

  • 感谢在 IntelliJ IDEA 社区版 2018.3.3 版中为我工作
  • Java 文档中还建议尽可能使用 private 修饰符。 docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/…
  • 对上述问题的更好回答。
  • 它的工作原理是确保在 (alt+Enter) 之前添加分号,例如: private static final long serialVersionUID =(alt+enter) ;
  • 我在这里看到的主要问题是您必须自己输入所有修饰符 - private static final...
【解决方案3】:

【讨论】:

  • 为什么安装插件很容易,如下面的@Serhii 所示。
  • @shaz 我更喜欢禁用该检查,但对于某些类,需要获得明确的 serialVersionUID。我不想分散对每个类的检查,而我只需要一个类的 serialVersionUID。
  • 我认为该插件有助于为父类也可序列化并包含serialVersionUID 的子类生成值。当您更新了子类并且需要在不更改父类的serialVersionUID 的情况下为该类生成新的serialVersionUID(在没有对父类进行更改的情况下)时,这会处理这种情况。
  • 虽然这可能会回答问题,但最好在此处提供实际信息而不仅仅是链接。 Link-only answers are not considered good answers and will probably be deleted.
  • @EdCottrell 没有其他信息可提供。使用或不使用插件。
【解决方案4】:

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

非常好,很容易安装。你可以从插件菜单安装它,选择从磁盘安装,选择你在lib文件夹中解压的jar文件。重启,control+ins,弹出菜单生成串口UID。爱它。 :-)

【讨论】:

    猜你喜欢
    • 2019-06-15
    • 2010-12-17
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    • 2020-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多