栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

解决java.util.LinkedHashMap cannot be cast to…

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

解决java.util.LinkedHashMap cannot be cast to…

此方法用于 解决前端传回list类型后端接收时参数类型发生改变

运行的时候,在遍历的时候,就报了java.util.LinkedHashMap cannot be cast to…这个异常

具体原因不清楚 之前有看过大佬这样说 :

"

后来仔细想了一下,调用过程中数据类型的变化:服务提供者返回的是LIst集合,但是标记了@RequestBody,所以返回的时候会把List集合转变成json的形式(内部是jackjson技术支持的)

然后服务消费者使用restTemplate.getForObject(),第二个参数传入接受的类型(就是将响应体中内容以什么类型封装)

如果像上面的写法,就会再把提供者返回的json转变成list,但是这个list跟之前不一样(一个是jackjson转变的,一个是restTemplate转变的,可能内部机制不一样)

所以遍历集合就会报上面的异常

"

我的解决方法: 需要注意得是再遍历时需要将你本来得对象类型改为object 因为传回得类型已经发生改变  一下就是我的 代码 和 详细解决方法

 List detailsVo = new ArrayList<>();
 for (Object object : zbDetailsVo.getZbDetailsVoList()) {
     String jsonObject = JSON.toJSONString(object);
     //将json转成需要的对象
     ZbDetailsVo zbVo = JSONObject.parseObject(jsonObject, ZbDetailsVo.class);
     detailsVo.add(zbVo);
 }

具体 操作

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/981681.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号