`
mfnevi
  • 浏览: 12030 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

flex请求java端,类型转换错误

阅读更多

本人初学flex不久,之前使用flex还是没有什么问题,但是最近被remoteobjcet弄晕了,折腾了好几天,现在把这个问题记录下来,希望能对将来遇到类似的人点提示:

 

java.lang.ClassCastException: flex.messaging.io.amf.ASObject cannot be cast to com.laoweng.action.vo.LineVo

 这个问题的起因是通过RemoteObject访问java端方法造成的,debug发现传递过来的对象是ASObject,也就是没有进行类型转换过。

但是我在as端进行过关联:

 

[Bindable]
[RemoteClass(alias="com.laoweng.action.vo.LineVo")]
 

这个问题是我在网上搜索到资料的时候提示的,说remote丢失信息造成的,因为我传递的参数是List且带有泛型,故在remoteObject发送请求前,手动声明一下:

 

registerClassAlias("com.laoweng.action.vo.LineVo",LineVo);

测试,问题解决了,但是我尚不明白一个问题:

java端调用的方法是:

convertFlowLineVosToDtos(flowID, lineVoList)
方法声明方式:不明白为什么会执行到方法体内部,当我循环遍历list的时候,才发现类型转换错误?

private List<LineDto> convertFlowLineVosToDtos(String flowID, List<LineVo> lineVoList){
		List<LineDto> flowLineList = new ArrayList<LineDto>();
		for(int i = 0; i < lineVoList.size(); i++){
			LineDto flowLine = new LineDto();
			LineVo lineVo = lineVoList.get(i);//这里强制类型转换错误
			...

 

有人能解释一下java为什么就能调用该方法内部?

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics