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

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

          主站蜘蛛池模板: 保德县| 辉南县| 郧西县| 四子王旗| 伊春市| 肇源县| 德江县| 东阿县| 仲巴县| 滨海县| 鲁山县| 区。| 洮南市| 广昌县| 资溪县| 江安县| 左云县| 通榆县| 镇江市| 石屏县| 三明市| 霸州市| 额济纳旗| 灵丘县| 孙吴县| 齐齐哈尔市| 水富县| 高尔夫| 桦川县| 扎赉特旗| 台北县| 新兴县| 铜鼓县| 崇文区| 文登市| 沁水县| 鄢陵县| 水城县| 科技| 开阳县| 乌鲁木齐县|