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