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

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

问题:
关于SpringCloud后台服务之间调用,参数是Map,放入对象进去,但是取出来的对象不能强转为原有的对象_第1张图片
在这里插入图片描述
关于SpringCloud后台服务之间调用,参数是Map,放入对象进去,但是取出来的对象不能强转为原有的对象_第2张图片
关于SpringCloud后台服务之间调用,参数是Map,放入对象进去,但是取出来的对象不能强转为原有的对象_第3张图片
关于SpringCloud后台服务之间调用,参数是Map,放入对象进去,但是取出来的对象不能强转为原有的对象_第4张图片
通过debug,我们其实能看到对象已经在map里面了,但是就是转不过来,不知道为什么会给我变成LinkedHashMap,但是我把map定义为LinkedHashMap也不能转过来。如果在同一个服务下面的模块或者方法之间的调用就可以转。

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

你可能感兴趣的:(代码知识)