Kotlin为序列化类生成serialVersionUID

2019/7/24 posted in  JavaWeb

一般在Intellij Idea使用过程中,为Java序列化类自动生成serialVersionUID可以通过Inspections配置来完成

Preferences -> Inspections -> Serialization issues -> Serialization class without 'serialVersionUID'

将光标放到类名上,按atl+enter键,就会提示生成serialVersionUID了

或者使用插件GenerateSerialVersionUID就能通过快捷键快速生成serialVersionUID

然而在Kotlin环境下,以上配置无效

解决方案如下:
利用serialver命令生成serialVersionUID

  • Preferences -> Tools -> External Tools
  • 添加新的tools
  • Name就设置为serialver
  • Program中选择serialver命令所在的路径,macOS下一般为/usr/bin/serialver
  • Arguments设置为 -classpath$OutputPath$:$Classpath$ $FileFQPackage$.$FileNameWithoutAllExtensions$
  • 点击保存以上配置

Ok,现在就可以生成serialVersionUID了。首先编译一下,让要生成serialVersionUID的类生成对应的class文件,然后在类的编辑窗口中右键选择external tools > serialver,这时console窗口出就生成了这个类的serialVersionUID了。

另:kotlin中没有Java的static关键字,所以serialVersionUID属性是以伴生对象属性存在的