首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

关于Flex返回数据类型的判断,该如何处理

2012-03-29 
关于Flex返回数据类型的判断上代码DAO实现类//查询独立的数据(一个VO对象)public Product getProductByNam

关于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 来决定你的操作.

热点排行