国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > WEB開發(fā) > 正文

18.5.使用IExternalizable接口自定義序列化

2024-04-27 13:52:25
字體:
供稿:網(wǎng)友
18.5.1. 問題
當(dāng)通過RemoteObject 或DataService 發(fā)送強(qiáng)類型數(shù)據(jù)時(shí)我想進(jìn)行自定義決定哪些屬性將被發(fā)送過去。
18.5.2. 解決辦法
使用ActionScript 3 API flash.utils.IExternalizable,它兼容java.io.IExternalizable API.
18.5.3. 討論
通常使用可序列化類是在序列化中包含只讀的屬性。雖然在服務(wù)端可有多種方式完成此目的,但是在客戶端就沒有什么方法了。因此最好的辦法就是在客戶端和服務(wù)端都有效,你可以使你的類進(jìn)行自定義雙向序列化。

這種方法相對簡單,在客戶端ActionScript 類只要實(shí)現(xiàn)flash.utils.IExternalizable。這個(gè)API 需要兩個(gè)方法, readExternal 和writeExternal , 分別取得flash.utils.IDataInput 和flash.utils.IDataOutput 數(shù)據(jù)流,在服務(wù)端是由實(shí)現(xiàn)java.io.Externalizable 接口的Java 類實(shí)現(xiàn)這兩個(gè)方法, 它也有兩個(gè)readExternal 和writeExternal ,分別取得java.io.ObjectInput 和java.io.ObjectOutput 數(shù)據(jù)流。

雖然IDataInput和IDataOutput類讓你設(shè)計(jì)自己的協(xié)議,但對于基本的數(shù)據(jù)類型如byte, int, 和UTF-8-編碼Strings,可以充分利用已實(shí)現(xiàn)的readObject 和writeObject 方法。作為這些使用AMF 3有效地進(jìn)行序列化和反序列化ActionScript 對象。(記住AMF 3 有三大優(yōu)點(diǎn):你可以只發(fā)送對象引用以避免多余的序列化實(shí)例,保持對象關(guān)系和處理周期性引用。你可以只發(fā)送對象特性,這樣當(dāng)實(shí)例重復(fù)時(shí)類型描述只發(fā)送一次。你可以只發(fā)送重復(fù)的字符串引用以避免產(chǎn)生冗余信息.)你甚至可以在自定義序列化代碼中完全省略屬性名稱,通過固定的順序發(fā)送屬性值。

注意
這個(gè)例子只關(guān)注于只讀屬性的序列化,不過自定義序列化還有很多其他方面的用途,比如省略屬性,避免多余的序列化信息,或包含來自自定義名稱空間的屬性。

注意java 中的writeExternal 方法如何寫:
public void writeExternal(ObjectOutput out) throws IOException
{
out.writeObject(id);
out.writeObject(name);
out.writeObject(description);
out.writeInt(price);
}

對應(yīng)的客戶端ActionScript 的readExternal 方法:
+展開
-ActionScript
public function readExternal(input:IDataInput):void
{
_id = input.readObject() as String;
name = input.readObject() as String;
description = input.readObject() as String;
price = input.readInt();
}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 金昌市| 丽水市| 全椒县| 理塘县| 德安县| 汉寿县| 眉山市| 梅州市| 曲靖市| 浙江省| 西乡县| 滕州市| 蓬莱市| 南江县| 卢湾区| 治多县| 泰来县| 兴海县| 晋城| 团风县| 苍梧县| 陆丰市| 闽侯县| 定南县| 将乐县| 邮箱| 武定县| 德保县| 左权县| 康马县| 驻马店市| 缙云县| 广河县| 阳信县| 锡林浩特市| 黄平县| 连南| 东兰县| 栖霞市| 安新县| 南京市|