关于SpringCloud后台服务之间调用,参数是Map,放入对象进去,但是取出来的对象不能强转为原有的对象

在SpringCloud中,服务间调用使用Map传递复杂对象时,接收方无法直接强转为原类型。本文探讨了这一现象的原因,并提供了一种解决方案:将对象序列化为JSON字符串传递,再在接收端反序列化为所需对象类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于SpringCloud后台服务之间调用,参数是Map,放入对象进去,但是取出来的对象不能强转为原有的对象

问题:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过debug,我们其实能看到对象已经在map里面了,但是就是转不过来,不知道为什么会给我变成LinkedHashMap,但是我把map定义为LinkedHashMap也不能转过来。如果在同一个服务下面的模块或者方法之间的调用就可以转。

原因:由于我不是很了解底层,所有这个还不是很清楚,我的猜想是因为在同一服务下面,我们是在同一个jvm里面,对象的地址不会改变。但是你用了远程调用,这里就会把你存入的对象序列化,所以你不能强转回来,我在网上搜索了一些解决办法,有人推荐用泛型,但是由于项目的原因,没有那么做。
**我最后的解决办法:
第一步:把两个对象转换成josn字符串传过去
在这里插入图片描述
第二步:再转成对象:
在这里插入图片描述
这样就可以解决这个问题了!
**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值