Java 後端與 Flex 前端透過 BlazeDS/LCDS/AMF 通訊時,需將 Java VO 映射為 ActionScript 類,**核心關鍵:[RemoteClass(alias="java.full.ClassName")]**。
| Java | ActionScript | 備註 |
|---|---|---|
| int / Integer | int | |
| boolean / Boolean | Boolean | **注意:Java primitive boolean 直接映射 AS Boolean 即可** |
| List / Array | ArrayCollection | 框架自動轉換 |
| Date | Date | |
| 自訂 VO | 自訂 AS 類 + RemoteClass | 屬性名、型別需一致 |
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 省略
}
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() {}
}
}
java.io.Serializable**。Boolean (物件) vs AS Boolean — 正常映射;但 Java boolean (基本型別) 在某些框架版本下需注意 null 處理。List ↔ AS ArrayCollection 自動轉換,Set/Map 需自定義轉換器。