flex请求java端,类型转换异常
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为什么就能调用该方法内部?