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为什么就能调用该方法内部?

你可能感兴趣的:(java,Flex,ASObject,类型转换错误)