隨筆-2  評(píng)論-0  文章-0  trackbacks-0

          接口 java.io.Serializable

          public interface Serializable

          實(shí)現(xiàn) java.io.Serializable 接口的類(lèi)是可序列化的。沒(méi)有實(shí)現(xiàn)此接口的類(lèi)將不能使它們的任一狀態(tài)被序列化或逆序列化。序列化類(lèi)的所有子類(lèi)本身都是可序列化的。這個(gè)序列化接口沒(méi)有任何方法和域,僅用于標(biāo)識(shí)序列化的語(yǔ)意。

          允許非序列化類(lèi)的子類(lèi)型序列化,子類(lèi)型可以假定負(fù)責(zé)保存和恢復(fù)父類(lèi)型的公有的、保護(hù)的和(如果可訪問(wèn))包的域的狀態(tài)。只要該類(lèi)(擴(kuò)展)有一個(gè)無(wú)參構(gòu)造子,可初始化它的狀態(tài),那么子類(lèi)型就可承擔(dān)上述職責(zé)。在這種情況下申明一個(gè)可序列化的類(lèi)是一個(gè)錯(cuò)誤。此錯(cuò)誤將在運(yùn)行時(shí)被檢測(cè)。

          在逆序列化期間,將使用非序列化類(lèi)的公用的或保護(hù)的無(wú)參構(gòu)造子對(duì)它的域進(jìn)行初始化。可序列化子類(lèi)必須能訪問(wèn)父類(lèi)的無(wú)參構(gòu)造子。它的所有域?qū)南鄳?yīng)流中被恢復(fù)。

          當(dāng)遍歷一個(gè)圖象時(shí),很可能遇到一個(gè)不支持序列化接口的對(duì)象。此時(shí)將拋出 NotSerializableException 異常,且標(biāo)識(shí)該非序列化對(duì)象類(lèi)。

          在序列化處理過(guò)程中需要特定句柄的類(lèi),必須使用如下這些恰當(dāng)?shù)臉?biāo)記實(shí)現(xiàn)特定的方法:

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

          writeObject 方法負(fù)責(zé)寫(xiě)特定類(lèi)的對(duì)象的狀態(tài),以至相應(yīng)的 readObject 方法能恢復(fù)它。 通過(guò)調(diào)用 out.defaultWriteObject 可激活保存對(duì)象域的缺省機(jī)制。此方法不必關(guān)心狀態(tài)是屬于它的父類(lèi)還是子類(lèi)。 使用 writeObject 方法或基本類(lèi)型支持的 DataOutput 方法將每個(gè)域的狀態(tài)保存到 ObjectOutputStream 中。

          readObject 方法負(fù)責(zé)從此流中讀取并恢復(fù)類(lèi)的域。它可能調(diào)用 in.defaultReadObject 方法來(lái)調(diào)用該對(duì)象的非靜態(tài)和非暫時(shí)的域的缺省恢復(fù)機(jī)制。 defaultReadObject 方法使用該流中的信息,用當(dāng)前對(duì)象中的已命名域分配保存在流中該對(duì)象的相應(yīng)域。當(dāng)類(lèi)已改進(jìn)增加了新域時(shí),這個(gè)接口也做相應(yīng)處理。此方法不必關(guān)心狀態(tài)是屬于它的父類(lèi)還是子類(lèi)。 使用 writeObject 方法或基本類(lèi)型支持的 DataOutput 方法將每個(gè)域的狀態(tài)保存到 ObjectOutputStream 中。

          posted on 2006-11-09 12:12 a3mao 閱讀(1070) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): java

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 利辛县| 肥城市| 额尔古纳市| 榆中县| 钟山县| 阿坝| 远安县| 永仁县| 三原县| 惠来县| 钦州市| 柞水县| 永靖县| 班戈县| 乐清市| 霸州市| 湟源县| 叙永县| 宁波市| 政和县| 福海县| 白水县| 即墨市| 巍山| 卫辉市| 英超| 中山市| 崇信县| 安阳市| 渝北区| 阳原县| 驻马店市| 西丰县| 阜阳市| 清镇市| 吉隆县| 韩城市| 邻水| 铜梁县| 东莞市| 南靖县|