所以我们有一个带有两个泛型ArrayLists的java类。看起来像是
public class Blah
{
public ArrayList<ConcreteClass> a;
public ArrayList<BaseClass> b;
}通过在ActionScript类中使用ArrayElementType('ConcreteClass'),我们能够获得所有“a”的转换结果。然而,对于"b",因为实际的类是BaseClassImplementation1、BaseClassImplementation2等类的异构混合,所以它被类型化为对象。假设客户端上存在java类的强类型AS版本,是否有办法将其转换为特定的具体类?
谢谢你的帮忙!Regis
发布于 2010-03-16 16:28:18
为了确保所有的DTO类都被编组到AS和Java中,您需要通过使用"RemoteClass“属性来将每个远程类定义为as中的”远程类“,该属性指向java类定义,如下面的RemoteClass(alias="com.myco.class")。
BlazeDS将在类被序列化/反序列化时对其执行内省,并对其进行适当的转换(参见下面的文档)。类如何打包或嵌套在数组中并不重要,只要它可以被内省,它就应该工作。
如果你需要一个类的特殊序列化,你可以创建你自己的序列化代理(称为beanproxy),方法是扩展"AbastractProxy“,并在启动时使用PropertyProxyRegistry注册方法将它们加载到blazeds中。
您可以在Blaze开发人员指南http://livedocs.adobe.com/blazeds/1/blazeds_devguide/中找到大部分内容。
创建你自己的here代理类看这里: //livedocs.adobe.com/blazeds/1/javadoc/flex/messaging/io/BeanProxy.html
https://stackoverflow.com/questions/2450479
复制相似问题