數據加載中……
          SerialVersionID問題
          (一些對象的狀態需要保存到磁盤或數據庫中時,需要實現Serializable接口)
          結論:在實現Serializable接口時,IDE一般會提醒你設置一個SerialVersionID,這樣做的好處是方便在不同編譯器之間代碼的移植。編譯器在讀取Serial對象時,會比較source與target的SerialVersionID是否一致,如果一致會產生InvalidClassException。
          在Eclipse中忽略該情況操作方法:Window-->Preferences-->Java-->Compiler-->Errors/Warnings-->Potential programming problems
          問題:SerialVersionID是否在不同的類中有不同的值?
          回答:不需要。因為SerialVersionID本身是static final,是全局的,而且一般都是針對當前類,所以一般都是private。編譯器在DeSerializable的時候,對象都是當前類,不需要不同類設置不同值。
          問題:不顯示聲明SerialVersionID是錯的嗎?
          回答:不是。編譯器有自己的生成SerialVersionID的規則,但是不同編譯器的規則又是不一致的,這樣就會造成已Serial對象SerialVersionID與當前編譯器DeSerial出來的SerialVersionID不一致,產生Exception。盡可能將所有可以序列化類都顯示聲明SerialVersionID。

          posted on 2008-04-10 10:08 牛浪de流 閱讀(514) 評論(0)  編輯  收藏 所屬分類: 爪哇學習

          主站蜘蛛池模板: 西畴县| 尚志市| 郑州市| 嵊泗县| 固始县| 侯马市| 泰兴市| 尤溪县| 都匀市| 大荔县| 英吉沙县| 依安县| 原阳县| 小金县| 全南县| 青田县| 介休市| 改则县| 商都县| 青海省| 泗阳县| 紫阳县| 晋江市| 柳州市| 保亭| 锡林郭勒盟| 彰化县| 元氏县| 黄冈市| 潼南县| 山西省| 清水河县| 东台市| 增城市| 东莞市| 大埔区| 湟源县| 清远市| 万盛区| 会同县| 虎林市|