小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

關于serialVersionUID的解釋

 pengx 2008-09-24

serialVersionUID 用來表明類的不同版本間的兼容性。如果你修改了此類, 要修改此值。否則以前用老版本的類序列化的類恢復時會出錯。
  
  在JDK中,可以利用JDK的bin目錄下的serialver.exe工具產(chǎn)生這個serialVersionUID,對于Test.class,執(zhí)行命令:serialver Test。

  為了在反序列化時,確保類版本的兼容性,最好在每個要序列化的類中加入private static final long serialVersionUID這個屬性,具體數(shù)值自己定義。這樣,即使某個類在與之對應的對象已經(jīng)序列化出去后做了修改,該對象依然可以被正確反序列化。否則,如果不顯式定義該屬性,這個屬性值將由JVM根據(jù)類的相關信息計算,而修改后的類的計算結(jié)果與修改前的類的計算結(jié)果往往不同,從而造成對象的反序列化因為類版本不兼容而失敗。

  不顯式定義這個屬性值的另一個壞處是,不利于程序在不同的JVM之間的移植。因為不同的編譯器實現(xiàn)該屬性值的計算策略可能不同,從而造成雖然類沒有改變,但是因為JVM不同,出現(xiàn)因類版本不兼容而無法正確反序列化的現(xiàn)象出現(xiàn)。

  當我們的系統(tǒng)不太經(jīng)常需要序列化類時,可以去掉這些警告,做如下設置:Window-->Preferences-->Java,將serializable class without serialVersionUID的設置由warning改為Ignore。然后Eclipse會重新編譯程序,那些警告信息也就消失了。

  最后的建議是,如果我們開發(fā)大量需要序列化的類的時候,我們最好還是還原為原來的設置

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多