- Java code
<mx:RemoteObject id="ro" destination="addTaskList" endpoint="/MBS/messagebroker/amf"> <mx:method name="getComputerList" result="getComResult(event)" /> </mx:RemoteObject> private init(){ ro.getComputerList(); } public function getComResult(e:ResultEvent):void{ var arr:ArrayCollection = e.result as ArrayCollection; }
RemoteObject 调用java 类的方法 返回一个 ArraryList (ArraryList里存放的都是java been的实体对象)。
var arr:ArrayCollection = e.result as ArrayCollection;
把返回的ArraryList 转化为ArrayCollection ,这样写正确吗?
然后如何得到ArrayCollection 里面的java对象?请帮忙,很迷茫,谢谢各位!!!
------解决方案--------------------
var arr:ArrayCollection = e.result as ArrayCollection
这样写对啊
然后遍历ArrayCollection它就能得到数据了
------解决方案--------------------
最好在flex端也建立一个JavaBean,绑定java的JavaBean
如:java - UserInfo flex对应写个UserInfo
for each(var u:UserInfo in arr){
Alert.show(u.userName);
}
如果flex不写一个实体bean,可以
for each(var u:Object in arr){
Alert.show(u.userName);
}
------解决方案--------------------
如果你是有JAVA POJO类,那是可以直接转换的,java和flex结合的很好。
如果没有,那么你的遍历数据集乐。。
转换请使用。var arr:ArrayCollection = ArrayCollection(e.result)
不要使用as ArrayCollection,有个时候会出错。。
------解决方案--------------------
试试楼上的方法var arr:ArrayCollection = ArrayCollection(e.result)
as ArrayCollection 这个as是类型转换,如果前面的数据不是ArrayCollection 就会返回null。
但ArrayCollection(e.result)不同,如果里面的类型不是ArrayCollection 他会创建一个ArrayCollection 对象里面的source内容是e.result