【问题标题】:BlazeDS - Conversion from ArrayList <BaseClass> on java side to ActionscriptBlazeDS - 从 java 端的 ArrayList <BaseClass> 转换为 Actionscript
【发布时间】:2010-03-15 21:04:08
【问题描述】:

所以我们有一个带有两个泛型 ArrayList 的 java 类。好像

public class Blah
{
   public ArrayList<ConcreteClass> a;
   public ArrayList<BaseClass> b;
}

通过在 actionscript 类中使用 [ArrayElementType('ConcreteClass')],我们能够很好地转换所有“a”。然而,对于“b”,由于实际出现的类是 BaseClassImplementation1、BaseClassImplementation2 等类的异构混合,因此它被键入为对象。假设客户端存在强类型的Java类AS版本,有没有办法将其转换为特定的具体类

感谢您的帮助! 雷吉斯

【问题讨论】:

    标签: flex3 blazeds


    【解决方案1】:

    为确保所有 DTO 类都跨 AS 和 Java 编组,您需要使用指向 Java 类定义的“RemoteClass”属性将每个远程类定义为 AS 中的“远程类”,如下所示 [RemoteClass (别名=“com.myco.class”)]。

    BlazeDS 将在类被序列化/反序列化时对其执行自省并适当地转换它(参见下面的文档)。类如何打包或嵌套在数组中并不重要,只要它可以自省,它就可以工作。

    如果您需要对某个类进行特殊序列化,您可以通过扩展“AbastractProxy”并在启动时使用 PropertyProxyRegistry 注册方法将它们加载到 blazeds 中来创建自己的序列化代理(称为 beanproxy)。

    您可以在 Blaze 开发人员指南http://livedocs.adobe.com/blazeds/1/blazeds_devguide/ 中找到大部分内容。

    创建您自己的 beanproxy 类看这里://livedocs.adobe.com/blazeds/1/javadoc/flex/messaging/io/BeanProxy.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-31
      • 2014-07-13
      • 2011-09-18
      • 1970-01-01
      • 2013-06-02
      相关资源
      最近更新 更多