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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值