首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 與 Flex/ActionScript 物件映射:RemoteClass 註解實現自動序列化

     編輯:Java 相關知識

Java 後端與 Flex 前端透過 BlazeDS/LCDS/AMF 通訊時,需將 Java VO 映射為 ActionScript 類,**核心關鍵:[RemoteClass(alias="java.full.ClassName")]**。

型別對照表

JavaActionScript備註
int / Integerint
boolean / BooleanBoolean**注意:Java primitive boolean 直接映射 AS Boolean 即可**
List / ArrayArrayCollection框架自動轉換
DateDate
自訂 VO自訂 AS 類 + RemoteClass屬性名、型別需一致

Java 端 VO (實作 Serializable)

package com.svse.entity;
public class FileAction implements java.io.Serializable {
    private Integer id;
    private Integer actionId;
    private String name;
    private String description;
    private Integer type;
    private Integer privId;
    // getter/setter 省略
}

Flex/AS 端對應類

package bean {
    [RemoteClass(alias="com.svse.entity.FileAction")]
    public class FileAction {
        public var id:int;
        public var actionId:int;   // 型別需匹配 (Java Integer → AS int)
        public var name:String;
        public var description:String;
        public var type:int;
        public var privId:int;
        public function FileAction() {}
    }
}

關鍵規則

  • alias 必須為 Java 類全限定名 (區分大小寫)。
  • AS 類屬性**必須為 public var** (或显式 getter/setter),私有屬性無法序列化。
  • 屬性名稱、型別**嚴格對應**,不一致會導致反序列化失敗或屬性為 null。
  • Java 端 VO **必須實作 java.io.Serializable**。

常見坑點

  • Java Boolean (物件) vs AS Boolean — 正常映射;但 Java boolean (基本型別) 在某些框架版本下需注意 null 處理。
  • 集合類型:Java List ↔ AS ArrayCollection 自動轉換,Set/Map 需自定義轉換器。
  • 日期時區:雙端統一用 UTC 時間戳或 ISO8601 字串傳遞,避免時區偏移。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved