很多人翻译Alias为“别名”,不太好,在金山词霸中还有另外一个意思“双面女间谍”,很形象。环境:服务器端使用java,客户端使用as3。
1)声明我的as3对象A是可以被强制转换为服务器端的java对象B的
在对象中使用
[RemoteClass(alias="B")]
Java代码
1. public class A{
2. ....
3. }
public class A{
....
}
另外一种,在application中,module或者调用远程RemoteObject前使用:
Java代码
1. registerClassAlias("B", A)
registerClassAlias("B", A)
注:据网上资料说第一种使用元数据标签的内部实现是第二种。
2)怎么知道一个类是否有“别名”。使用方法:
一种方法getClassByAlias(aliasName:String):Class
二种方法,使用反射:
Java代码
1. override protected function encodeComplex(o:Object, b:IBinary, context:IContext=null):void
2. {
3. var desc:XML = describeType(o);
4. var classAlias:String = desc.@alias;
5. //...
6. }
override protected function encodeComplex(o:Object, b:IBinary, context:IContext=null):void
{
var desc:XML = describeType(o);
var classAlias:String = desc.@alias;
//...
}
3)使用“别名”解决序列化时碰到的不能转换的错误。
1)声明我的as3对象A是可以被强制转换为服务器端的java对象B的
在对象中使用
[RemoteClass(alias="B")]
Java代码
1. public class A{
2. ....
3. }
public class A{
....
}
另外一种,在application中,module或者调用远程RemoteObject前使用:
Java代码
1. registerClassAlias("B", A)
registerClassAlias("B", A)
注:据网上资料说第一种使用元数据标签的内部实现是第二种。
2)怎么知道一个类是否有“别名”。使用方法:
一种方法getClassByAlias(aliasName:String):Class
二种方法,使用反射:
Java代码
1. override protected function encodeComplex(o:Object, b:IBinary, context:IContext=null):void
2. {
3. var desc:XML = describeType(o);
4. var classAlias:String = desc.@alias;
5. //...
6. }
override protected function encodeComplex(o:Object, b:IBinary, context:IContext=null):void
{
var desc:XML = describeType(o);
var classAlias:String = desc.@alias;
//...
}
3)使用“别名”解决序列化时碰到的不能转换的错误。