gpt4 book ai didi

java - 自定义对象的 BlazeDS 和 ArrayList

转载 作者:搜寻专家 更新时间:2023-11-01 01:48:38 24 4
gpt4 key购买 nike

我正在使用 BlazeDS 将 Flex 与 Java 连接起来。我在将自定义对象的 ArrayLists 从 Flex 传递到 java 时遇到问题。

我有两个对象,一个叫Category,另一个叫Section。 Category 具有 Section 对象的 ArrayList。我可以在 Flex 和 Java 之间来回发送 Category 对象的 ArrayList,问题是当我尝试访问已从 Flex 返回到 Java 的 Category 对象的 ArrayList 部分时,我收到以下错误:

flex.messaging.MessageException: java.lang.ClassCastException : flex.messaging.io.amf.ASObject

出于某种原因,我得到了一个 ASObjects 的 ArrayList 而不是我的 Section 对象。我尝试查找如何在 actionscript 中显式键入数组,但我唯一能找到的是使用 BlazeDS 不支持的 Vector 对象。是否可以在 Category 对象的 ArrayList 中传递 Section 对象的 ArrayList,还是我必须找到另一种方法?

最佳答案

对 AS3 最常见的提示之一是缺少类型化数组。 ArrayLists 将只包含对象,您必须自己转换结果。

这是我要传递的 Java 和 AS3 类的示例。

在 Java 中:

顶级类:

package mystuff;

public class StuffToSend
{
public List<Section> sections;
...
}

节类:

package mystuff;

public class Section
{
public List<Catagory> categories;
...
}

类别类:

package mystuff;

public class Category
{
...
}

在 AS3 中:

package mystuff
{
[RemoteClass(alias="mystuff.StuffToSend")] // So AS3 knows which Java class to map
public class StuffToSend
{
public var sections:ArrayCollection;
...
}
}

package mystuff
{
[RemoteClass(alias="mystuff.Section")] // So AS3 knows which Java class to map
public class Section
{
public var categories:ArrayCollection;
...
}
}

package mystuff
{
[RemoteClass(alias="mystuff.Category")] // So AS3 knows which Java class to map
public class Category
{
...
}
}

您可以在此处了解有关 remoteObjects 的更多信息:Data Access

关于java - 自定义对象的 BlazeDS 和 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/758006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com