IntelliJ IDEA使用技巧(八)——自動生成 serialVersionUID 的方法
當(dāng)我們用 IntelliJ IDEA 編寫類并實(shí)現(xiàn) Serializable(序列化)接口的時候,可能會遇到這樣一個問題,那就是:
- 無法自動生成serialVersionUID.
而serialVersionUID
又是一個非常重要的字段,因?yàn)?Java 的序列化機(jī)制是通過在運(yùn)行時判斷類的serialVersionUID
來驗(yàn)證版本一致性的。在進(jìn)行反序列化時,JVM 會把傳來的字節(jié)流中的serialVersionUID
與本地相應(yīng)實(shí)體(類)的serialVersionUID
進(jìn)行比較,如果相同就認(rèn)為是一致的,可以進(jìn)行反序列化,否則就會出現(xiàn)序列化版本不一致的異常。
一般來說,定義serialVersionUID
的方式有兩種,分別為:
- 采用默認(rèn)的1L,具體為
private static final long serialVersionUID = 1L;
- 根據(jù)類名、接口名、成員方法及屬性等來生成一個
64
位的哈希字段,例如private static final long serialVersionUID = XXXL;
而 Java 類進(jìn)行序列化也兩個主要目的,分別為:
- 把對象的字節(jié)序列永久地保存到硬盤上,通常存放在一個文件中;
- 在網(wǎng)絡(luò)上傳送對象的字節(jié)序列。
在這里,我們就一起來看看如何利用 IntelliJ IDEA 自動生成serialVersionUID
.
第 1 步:安裝GenerateSerialVersionUID插件
如上圖所示,點(diǎn)擊Preferences
,進(jìn)入如下界面:
在這里,選擇Plugins
,并搜索GenerateSerialVersionUID
,如果沒有發(fā)現(xiàn)此插件,則可以點(diǎn)擊Search in repositories
進(jìn)行搜索:
如上圖所示,點(diǎn)擊install
,即可安裝此插件。
第 2 步:設(shè)置Inspections功能
如上圖所示,進(jìn)入Default Settings
,在Inspections
設(shè)置頁面中,勾選Serializable class without 'serialVersionUID'
,并且還可以在Severity
中設(shè)置提示級別,如Warning
、Error
等,默認(rèn)為Warning
,也建議選擇Warning
級別的提示。
如上圖所示,創(chuàng)建一個類并實(shí)現(xiàn)Serializable
接口,然后按alt
+Enter
鍵,即可收到提示,然后選擇SerialVersionUID
:
如上圖所示,顯然我們已經(jīng)利用 IntelliJ IDEA 中自動生成serialVersionUID
啦!
下期預(yù)告:IntelliJ IDEA提交代碼前的 Code Analysis 機(jī)制
更多關(guān)于JAVA IDE相關(guān)產(chǎn)品授權(quán)、試用相關(guān)信息,請