在学习Flex的过程中,你可能会遇到FlexJava数据类型的问题,这里和大家分享一下,由于目前LCDS只能与J2EE的服务端进行通信,所以目前只是ActionScript3.0数据类型和Java数据类型的转换。但是ActionScript3.0与Java数据类型转换是不对称的。
FlexJava数据类型
目前LCDS只能与J2EE的服务端进行通信,所以目前只是ActionScript3.0数据类型和Java数据类型的转换。ActionScript3.0与Java数据类型转换是不对称的。
◆ActionScript3.0向Java转换时数据类型的对应关系
ActionScript数据类型-------------------Java数据类型
null-------------------null
Number-------------------java.lang.Number
Boolean-------------------java.lang.Number,boolean,java.lang.String
String-------------------java.lang.String,java.lang.Boolean,boolean,java.lang.Character,char,java.lang.Number
Date-------------------java.util.Date
XMLObject-------------------org.w3c.dom.Document
================================================
◆Java向ActionScript3.0转换时数据类型对应
Java数据类型-------------------ActionScript3.0数据类型
null-------------------null
java.lang.Number-------------------Number
java.lang.Number,boolean-------------------Boolean
java.lang.String,java.lang.Characterchar[]-------------------String
java.util.Collection,java.lang.reflect.Array-------------------Array
java.util.Map,java.util.Dictionary-------------------Object
org.w3c.dom.Document-------------------XMLObject
其他claess-------------------Object
在使用LCDS调用的Java代码的过程中数据类型的转换是直接发生了,不需要显性的调用。
补:JAVA里的LIST、ARRAYLIST对应到Flex里可以用ArrayCollection来接收。
eg:通过JAVA写一个连接ORACLE的方法,返回一个ARRAYLIST,该ARRAYLIST里放的一般是一个个的HASHMAP。如果通过RemoteObject(或其他方式)来调用该方法时,Flex端接收到的肯定是个OBJECT,这个时候可以强制转换成ArrayCollection。然后通过遍历该ArrayCollection,来取得存每条数据的OBJECT(JAVA里的HASHMAP)。
Flex里没有MAP类,但只要你知道了JAVA里MAP的KEY,那么Flex里就可以作为OBJECT的一个属性来访问。参考资料:精通Flex3.0--基于ActionScript3.0实现
【编辑推荐】