天天看點

flex中各個資料類型和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
XML Object org.w3c.dom.Document

------------------------------------------------------------------------------------------------------------------------------------

Java向ActionScript 3.0轉換時資料類型對應:

Java資料類型 ActionScript3.0資料類型
null null
java.lang.Number Number 
java.lang.Number,boolean Boolean
java.lang.String,java.lang.Character char[] String 
java.util.Collection,java.lang.reflect.Array ArrayCollection,Array 
java.util.Map,java.util.Dictionary Object
org.w3c.dom.Document XML Object
其他claess Object

注意:

(1)JAVA裡的LIST、ARRAYLIST對應到FLEX裡可以用ArrayCollection來接收。 

(2)eg:通過JAVA寫一個連接配接ORACLE的方法,傳回一個ARRAYLIST,該ARRAYLIST裡放的一般是一個個的HASHMAP。如果通過RemoteObject(或其他方式)來調用該方法時,FLEX端接收到的肯定是個OBJECT,這個時候可以強制轉換成ArrayCollection。然後通過周遊該ArrayCollection,來取得存每條資料的OBJECT(JAVA裡的HASHMAP)。

(3)FLEX裡沒有MAP類,但隻要你知道了JAVA裡MAP的KEY,那麼FLEX裡就可以作為OBJECT的一個屬性來通路。

測試:(關鍵代碼)

(1)如果伺服器端傳過來的是List集合類型(包括List的子類):

   [Bindable]

   public static var list:ArrayCollection;

   private function loadData(event:ResultEvent):void{

    list = ArrayCollection(event.result);

   }

  <mx:DataGrid dataProvider="{list}" id="studentData">

  <mx:columns>

   <mx:DataGridColumn dataField="studentId" headerText="學号"/>      <!-- 背景屬性字段 -->

   <mx:DataGridColumn dataField="studentAge" headerText="年齡"/>    <!-- 背景屬性字段 -->

   <mx:DataGridColumn dataField="studentBirthday" headerText="生日"/> <!-- 背景屬性字段 -->

  </mx:columns>

 </mx:DataGrid>

(2)如果伺服器端傳過來的是Map集合類型 (包括Map的子類):

    [Bindable]

    public var hm:Object;

    public function hashMap(event:ResultEvent):void{

     hm = event.result as Object;

    }

    <mx:TextInput x="10" y="244" text="{hm.name}"/>        <!--name,age,id為HashMap裡面的key-->

    <mx:TextInput x="10" y="306" text="{hm.age}"/>

    <mx:TextInput x="10" y="361" text="{hm.id}"/>

(3)如果伺服器端傳過來的是Stirng[]類型的數組:

    [Bindable]

    public var arr:Array;

   public function array(event:ResultEvent):void{

       arr = event.result as Array;

       for(var i:int = 0 ; i < arr.length; i++){

        //得到的值順序颠倒

        Alert.show(arr[i]);

        } 

   }