日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

idea序列化自动生成_serialVersionUID在数据序列化中重要性

發(fā)布時間:2025/3/11 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 idea序列化自动生成_serialVersionUID在数据序列化中重要性 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

作用

  • 用于判斷序列化文件是否已經失效(過期)。
  • 序列化的時候會把這個ID寫到文件里。
  • 讀的時候會把這個ID和代碼里的ID比較,如果不一致,表示文件里的已經失效。(will result in an InvalidClassException.)
  • 值寫為多少

    你可以寫為1L,也可以讓IDEA幫你生成一個。

    不寫會有什么問題

    不寫的話,序列話的時候,JVM會幫你動態(tài)的生成一個。這個動態(tài)生成的算法可能在不同的虛擬機里不一樣,也就是不同的環(huán)境下生成的可能不同。這就會有一個問題,你序列化產生的文件,別人讀的時候會 InvalidClassException。

    注意:顯示聲明serialVersionUID可以避免對象不一致

    兩種顯示的生成方式

    一是默認的1L,比如:private static final long serialVersionUID = 1L;

    二是根據(jù)包名,類名,繼承關系,非私有的方法和屬性,以及參數(shù),返回值等諸多因子計算得出的,極度復雜生成的一個64位的哈希字段。基本上計算出來的這個值是唯一的。比如:private static final long serialVersionUID = xxxxL;

    注意:顯示聲明serialVersionUID可以避免對象不一致

    IntelliJ IDEA 編寫類自動生成serialVersionUID

    當我們用 IntelliJ IDEA 編寫類并實現(xiàn) Serializable(序列化)接口的時候,可能會遇到這樣一個問題,那就是:無法自動生成serialVersionUID

    在這里,我們就一起來看看如何利用 IntelliJ IDEA 自動生成serialVersionUID.

    第 1 步:安裝GenerateSerialVersionUID插件

    如上圖所示,點擊Preferences,進入如下界面:

    在這里,選擇Plugins,并搜索GenerateSerialVersionUID,如果沒有發(fā)現(xiàn)此插件,則可以點擊Search in repositories進行搜索:

    如上圖所示,點擊install,即可安裝此插件。

    第 2 步:設置Inspections功能

    如上圖所示,進入Default Settings,在Inspections設置頁面中,勾選Serializable class without 'serialVersionUID',并且還可以在Severity中設置提示級別,如Warning、Error等,默認為Warning,也建議選擇Warning級別的提示。

    如上圖所示,創(chuàng)建一個類并實現(xiàn)Serializable接口,然后按alt+Enter鍵,即可收到提示,然后選擇SerialVersionUID:

    如上圖所示,顯然我們已經利用 IntelliJ IDEA 中自動生成serialVersionUID啦!

    總結

    以上是生活随笔為你收集整理的idea序列化自动生成_serialVersionUID在数据序列化中重要性的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。