隨筆-2  評論-0  文章-0  trackbacks-0

          接口 java.io.Serializable

          public interface Serializable

          實現 java.io.Serializable 接口的類是可序列化的。沒有實現此接口的類將不能使它們的任一狀態被序列化或逆序列化。序列化類的所有子類本身都是可序列化的。這個序列化接口沒有任何方法和域,僅用于標識序列化的語意。

          允許非序列化類的子類型序列化,子類型可以假定負責保存和恢復父類型的公有的、保護的和(如果可訪問)包的域的狀態。只要該類(擴展)有一個無參構造子,可初始化它的狀態,那么子類型就可承擔上述職責。在這種情況下申明一個可序列化的類是一個錯誤。此錯誤將在運行時被檢測。

          在逆序列化期間,將使用非序列化類的公用的或保護的無參構造子對它的域進行初始化??尚蛄谢宇惐仨毮茉L問父類的無參構造子。它的所有域將從相應流中被恢復。

          當遍歷一個圖象時,很可能遇到一個不支持序列化接口的對象。此時將拋出 NotSerializableException 異常,且標識該非序列化對象類。

          在序列化處理過程中需要特定句柄的類,必須使用如下這些恰當的標記實現特定的方法:

           private void writeObject(java.io.ObjectOutputStream out)
               throws IOException
           private void readObject(java.io.ObjectInputStream in)
               throws IOException, ClassNotFoundException; 
           

          writeObject 方法負責寫特定類的對象的狀態,以至相應的 readObject 方法能恢復它。 通過調用 out.defaultWriteObject 可激活保存對象域的缺省機制。此方法不必關心狀態是屬于它的父類還是子類。 使用 writeObject 方法或基本類型支持的 DataOutput 方法將每個域的狀態保存到 ObjectOutputStream 中。

          readObject 方法負責從此流中讀取并恢復類的域。它可能調用 in.defaultReadObject 方法來調用該對象的非靜態和非暫時的域的缺省恢復機制。 defaultReadObject 方法使用該流中的信息,用當前對象中的已命名域分配保存在流中該對象的相應域。當類已改進增加了新域時,這個接口也做相應處理。此方法不必關心狀態是屬于它的父類還是子類。 使用 writeObject 方法或基本類型支持的 DataOutput 方法將每個域的狀態保存到 ObjectOutputStream 中。

          posted on 2006-11-09 12:12 a3mao 閱讀(1060) 評論(0)  編輯  收藏 所屬分類: java

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 汉阴县| 开鲁县| 喜德县| 武宁县| 广平县| 莆田市| 天柱县| 个旧市| 遵义市| 寿宁县| 晋中市| 亚东县| 浦江县| 张家口市| 阿拉尔市| 临泉县| 泽普县| 桦南县| 镇巴县| 苏州市| 色达县| 新竹市| 乾安县| 淮南市| 武宣县| 青海省| 罗山县| 云安县| 德格县| 鹤庆县| 贵州省| 剑川县| 遵义市| 麻城市| 望江县| 中宁县| 子长县| 长汀县| 阿尔山市| 河间市| 西乡县|