关于Flex返回数据类型的判断
上代码
DAO实现类
//查询独立的数据(一个VO对象)
public Product getProductByName(String name) {
Product p = new Product();
if(name.equals("product_2")){
p.setId(new String("3200002"));
p.setName("product_2");
}
return p;
}
//查询所有数据
public List listProduct() {
List productList = new ArrayList();
for(int i=0;i<10;i++){
Product p = new Product();
p.setId(new String("320000"+i));
p.setName("product_"+i);
productList.add(p);
}
return productList;
}
Flex端
如下:
//查询结果集处理函数
protected function dataResult(e:ResultEvent){
//判断返回的数据类型
if(e.result instanceof Object){
Alert.show("该返回类型为Object");
var data:Object = e.result as Object;
dg.dataProvider = data
CursorManager.removeBusyCursor();
}else{
Alert.show("该返回类型为ArrayCollection");
var data2:ArrayCollection = e.result as ArrayCollection;
dg.dataProvider = data2;
CursorManager.removeBusyCursor();
}
}
为什么执行的时候,走的都是if(){。。。。}下面的语句
如果我改成
if(e.result instanceof ArrayCollection){
Alert.show("该返回类型为ArrayCollection");
var data:ArrayCollection= e.result as ArrayCollection;
dg.dataProvider = data
CursorManager.removeBusyCursor();
}else{
Alert.show("该返回类型为ArrayCollection");
var data2:ArrayCollection = e.result as ArrayCollection;
dg.dataProvider = data2;
CursorManager.removeBusyCursor();
}
它还是执行if中的语句,求大师神解
[解决办法]
ResultEvent 反回的 result 有且仅有 Object 对象, 没其它了.
[解决办法]
任意对象都可以 as 为Object
你可以试试判断 ArrayCollection 的 length 来决定你的操作.