使用BlazeDS+JAVA的模式来开发的时候,数据类型对应的关系如下:
从 Action Script 到 Java
AS JAVA
Array (dense)) java.util.List
Array (sparse) ) java.util.Map
flash.utils.ByteArray ) byte []
flash.utils.IExternalizable ) java.io.Externalizable
Date java.util.Date
int/uint java.lang.Integer
null null
Number java.lang.Double
String
java.lang.String XML org.w3c.dom.Document
XMLDocument org.w3c.dom.Document
从 Java 到 ActionScript
Java AS
java.lang.String String
java.lang.Boolean, boolean Boolean
java.lang.Integer int
java.lang.Short int
java.lang.Byte int
java.lang.Byte[] flash.utils.ByteArray
java.lang.Double Number
java.lang.Long Number
java.lang.Float Number
java.lang.Character String
java.lang.Character[] String
java.util.Calendar Date
java.util.Date Date
java.util.Collection mx.collection.ArrayCollection
java.lang.Object[] Array
java.util.Map Array (sparse)
java.util.Dictionary Object (untyped)
org.w3c.dom.Document XML object
目前 LCDS 只能与 J2EE 的服务端进行通信,所以目前只是 ActionScript 3.0 数据类型和 Java 数据类型的转换。ActionScript 3.0 与 Java 数据类型转换是不对称的。 ActionScript 3.0 向 Java 转换时数据类型对应如表 所示。在使用 LCDS 调用的 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.Docume
java 数据类型 转向 actionscript 数据类型
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 Array java.util.Map,java.util.Dictionary
Object org.w3c.dom.Document XML Object 其他
claess Object
java 数据类型的默认值
类型 默认值
boolean false byte
0 short 0 int
0 long 0L char
\ float 0.0f do le
0.0d 对象引用 null
ActinonScript3.0 数据类型的默认值
Boolean逻辑数据类型,默认值是falseint整形数据类型,默认值为0Number双精度浮点型,默认值为NaNObject属性集合默认值为NullString字符类型默认值为NullUint整型数据类型,默认值为0未声明的全部默认为undefined其他所有类(包括用户定义的类)默认值为null
这里值得注意的是int和uint两个整形数据类型的不同在于他们所包含的值得范围不一样,int的值得范围是-2147483648到2147483647之间的整数uint则是0到4294967295之间的整数就是说该类型是32为无符号整,数如想检查数据类的默认值得话可以用下面的代码完成。例:
var wdll:Boolean;
var wdll01:int;
var wdll02:uint;
var wdll03:Number;
var wdll04:String;
var wdll05: Object;
var wdll06:*;
trace(wdll);
trace(wdll01);
trace(wdll02);
trace(wdll03);
teacr(wdll04);
trace(wdll05);
trace(wdll06);