编程语言
首页 > 编程语言> > java – 自定义对象的BlazeDS和ArrayList

java – 自定义对象的BlazeDS和ArrayList

作者:互联网

我正在使用BlazeDS将Flex与Java连接.我无法将自定义对象的ArrayLists从Flex传递给java.

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

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

出于某种原因,我得到的是ASObjects的ArrayList而不是我的Section对象.我试着查找如何在actionscript中显式地键入数组,但我唯一能找到的是使用Vector对象,BlazeDS不支持.是否可以在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,flex,actionscript-3,blazeds
来源: https://codeday.me/bug/20190610/1214938.html