当你使用AMF格式进行RemoteObject 调用时,肯定会用到Java类型和ActionScript类型的转换,那么他们之间的类型匹配关系是怎样的,这个其实在Flex的doc中有介绍,这里我进行一个整理。
Java类型
|
ActionScript类型
|
java.lang.String
|
String
|
java.lang.Character
|
String
|
java.lang.Character[]
|
String
|
java.lang.Boolean, boolean
|
Boolean
|
java.lang.Integer, Short, Byte
|
int
|
java.lang.Double,double
|
Number
|
java.lang.Long, long
|
Number
|
java.lang.Float, float
|
Number
|
java.util.Date
|
Date
|
java.util.Calendar
|
Date
|
java.lang.Object
|
Object
|
java.lang.Object[]
|
Array
|
java.lang.Byte[]
|
flash.utils.ByteArray
|
java.util.Dictionary
|
Object(无法匹配)
|
java.util.Map
|
不建议使用
|
null
|
null
|
Java类必须实现Serializable接口,并且每个需要Serializable 的property必须是public而且实现getter/setter方法
ActionScript类的写法如下
package samples.contact {
[Bindable]
[RemoteClass(alias="samples.contact.Contact")]
public class Contact {
public var contactId:int;
public var firstName:String;
public var lastName:String;
public var address:String;
public var city:String;
public var state:String;
public var zip:String;
}
}