Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >无法解析类型java.lang.Object_java类型转换异常

无法解析类型java.lang.Object_java类型转换异常

作者头像
全栈程序员站长
发布于 2022-10-03 05:22:21
发布于 2022-10-03 05:22:21
1.2K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

问题场景:

1、前端传一个数组,

2、后台Controller用map接收。如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 @PostMapping("add/xxxx")
    public ResponseObj addXXXX(@RequestBody Map<String, Object> map){
}

3、Service业务类方法中,直接获取数组并转化为 实体的集合:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
List<XXXX> list = (List<XXXX>) map.get("list");

4、然后使用拉姆达表达式对集合进行过滤的时候,报错!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//所有名字集合 
ArrayList<String> XXXXNameList = XXXXDao.getAllXXXXNameListById(id); 
//过滤list,名字不在XXXXNameList中的
List<XXXX> collect = list.stream().
                    filter(e -> !XXXXNameList.contains(e.getName())).collect(Collectors.toList());

报错信息:

java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.xxx.xxxx.entity.xxxx

分析:

打断点调试,发现 map是LinkedHashMap,得到的其实是个map,而不是实体类。

解决方案:

1、将map转成json,在转成对象(这种方式比较简单,很多json工具方法都有)

2、反序列化成对象

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
List<XXX> list1 = (List<XXX>) map.get("list");
ObjectMapper mapper = new ObjectMapper();
List<XXX> list = mapper.convertValue(list1, new TypeReference<List<XXX>>() { });

这下再对list过滤就ok了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/197531.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月4日 上,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
strm().filter().collect()和stream().map().collect()的作用
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/15
4260
Java8 stream流式编程对List<Map<String, Object>>类型数据进行简单处理
构造list集合 List<Map<String,Object>> list = Lists.newArrayList(); IntStream.range(1,5).forEach(e->{
向着百万年薪努力的小赵
2022/12/02
1.1K0
Java8 Stream,常用方法大合集
一、概述 二、分类 三、具体用法 1.流的常用创建方法 2.流的中间操作 3.流的终止操作
鱼找水需要时间
2023/02/16
4460
Java8 Stream,常用方法大合集
Jackson: java.util.LinkedHashMap cannot be cast to X
本文翻译自:https://www.baeldung.com/jackson-linkedhashmap-cannot-be-cast
翎野君
2023/05/12
2.6K0
Jackson: java.util.LinkedHashMap cannot be cast to X
JAVA对象转map_java处理字符串类型的map
Object succesResponse = JSON.parse(out); //先转换成Object
全栈程序员站长
2022/10/03
1.5K0
Json字符串和对象相互转换
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/15
7820
JAVA为啥要用stream流处理_java哪个部分最难学
上篇文章讲了Java 8 的一个新特性:Lambda表达式,在业务中若能熟练的使用,可以节省很多代码量,看着也整洁很多。那么这篇文章将介绍另一个新特性:Stream流,不要看错哈!!!不是打游戏的steam!!
全栈程序员站长
2022/11/08
6520
JAVA为啥要用stream流处理_java哪个部分最难学
java typereference_Java泛型 | Jackson TypeReference获取泛型类型信息「建议收藏」
Jackson是一个比较流行的Json序列化和反序列化框架。本文以Jackson为例介绍TypeReference实现涉及泛型的反序列化,及TypeReference的实现原理。对于获取泛型类型信息的场景,TypeReference是一个可以参考的通用解决方案。
全栈程序员站长
2022/07/05
2.9K0
Java8新特性 stream流常用方法
Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。
全栈程序员站长
2022/11/10
3110
Java8新特性 stream流常用方法
JDK8新特性-Stream流[通俗易懂]
作者是一个来自河源的大三在校生,以下笔记都是作者自学之路的一些浅薄经验,如有错误请指正,将来会不断的完善笔记,帮助更多的Java爱好者入门。
全栈程序员站长
2022/11/10
5330
JDK1.8新特性(二):Collectors收集器类
Java 8 API添加了一个新的抽象称为流Stream,我们借助Stream API可以很方便的操作流对象。
全栈程序员站长
2022/09/22
4370
java list 转json 字符串_JSON的String字符串与Java的List列表对象的相互转换
2.如果是需要把前端的List对象转换为json传到后台,param是ajax的参数,那么转换如下所示:
全栈程序员站长
2022/11/02
9.4K0
POST、GET、@RequestBody和@RequestParam区别[通俗易懂]
注解@RequestParam接收的参数是来自HTTP请求体或请求url的QueryString中。
全栈程序员站长
2022/08/11
5K0
POST、GET、@RequestBody和@RequestParam区别[通俗易懂]
Java8-对List转换Map、分组、求和、过滤
在java8之后我们list转map再也不用循环put到map了,我们用lambda表达式,使用stream可以一行代码解决,下面我来简单介绍list转map的几种方式,和转为map后对map进行分组、求和、过滤等操作。
胖虎
2019/06/26
7.8K1
Java8-对List转换Map、分组、求和、过滤
javastream流详解_Java获取文件流的所有方式
Lambda表达式,基于Lambda所带来的函数式编程,又引入了一个全新的Stream概念,用于解决集合类库既有的鼻端。(Lambda表达式详解在上篇博客内容)
全栈程序员站长
2022/11/08
1.2K0
JAVA泛型类的使用
在工作流(workflow)中,存在着各种各样的工作流程,这些流程呢有一些特征——1.流程基本信息相同 2.流程内容不同
小小明童鞋
2019/03/12
1.8K0
JAVA泛型类的使用
jsonobject详解_object转json字符串
JSON(JavaScript Object Notation的首字母缩写)是一种轻量级数据交换格式,最常用于客户端 – 服务器通信。它既易于读/写,又与语言无关。JSON值可以是另一个JSON 对象,数组,数字,字符串,布尔值(true / false)或null。也是后端开发中经常要接触的一个一个类,将要数据封装成json然后传递给前端。 只要我们导入如下maven依赖即可使用由阿里巴巴发布的JSON工具类。
全栈程序员站长
2022/11/08
2.4K0
jsonobject详解_object转json字符串
使用 Java8的 stream对list数据去重,使用filter()过滤列表,list转map「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/141093.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/24
4.2K0
2个list取交集_角的集合如何取交集
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/08
1.1K0
map怎么转json对象_object转jsonobject
业务背景:因为要嵌套一些数据报表,页面点击菜单直接进行url访问,因访问受限要修改url权限,返回数据是JSONObject,防止出现异常,后台进行了一些Map于JSONObject的转换,记录下来
全栈程序员站长
2022/09/23
2.9K0
推荐阅读
相关推荐
strm().filter().collect()和stream().map().collect()的作用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档