深入學習FlexJava數據模型
在學習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實現
【編輯推薦】