在通过blazeds 进行远程对象传输的时候,当传递一个包含自定义复杂对象的数组给java端得时候, java端中接受到对应的集合对象不能直接映射成java端的复杂对象,需要自行将集合中包含的ASObject对象转换成自定义对象。转换的方法如下:(需要用的blazeds的核心包flex-messaging-core.jar)
public ArrayList <MyObject> convertArrayCollection(ArrayCollection array){
ArrayList <MyObject> myObjectArray = new ArrayList();
ASTranslator ast = new ASTranslator();
MyObject myObject;
ASObject aso;
for (int i=0;i < array.size(); i++){
myObject = new MyObject();
aso = new ASObject();
aso = (ASObject) array.get(i);
aso.setType("com.myPackage.MyObject");
myObject = (MyObject) ast.convert(aso, MyObject.class);
myObjectArray.add(myObject);
}
return myObjectArray;
}