CopyBeanUtils坑,xxDto cannot be cast to xxxEntity 类型转化错误
CopyBeanUtils坑,类型转化错误
- 问题来源:
- 描述: 今天后台使用自建的beanUtils进行属性拷贝时发生了坑。
- 解决:
- 解决方法
问题来源:
描述: 今天后台使用自建的beanUtils进行属性拷贝时发生了坑。
业务代码如下
//查询业务代码List<PageInfoDto> pageInfoDtoList = new ArrayList<>();pageInfoDtoList = pageInfoRepository.findByCardIdAndDeleted(cardId,AlIVE);List<PageInfoEntity> pageInfoEntityList = new ArrayList<>();//DTO转义业务实体pageInfoEntityList =CopyBeanUtils.copyList(pageInfoDtoList);//特殊处理,发生报错了for(PageInfoEntity pageInfoEntity : pageInfoEntityList) {System.out.println("输出测试");}
错误
java.lang.ClassCastException: xxxDto cannot be cast to xxxEntity
这怕不是傻了。我的代码里可没有这种传化,排查下工具类
public static <T> List copyList(List<T> list) {if (CollectionUtils.isEmpty(list)) {return new ArrayList();}return JSON.parseArray(JSON.toJSONString(list), list.get(0).getClass());}
debug后发现正常返回,但当进行for循环时报错了
解决:
步骤
1.怀疑是使用泛型后的泛型擦除问题
但是报错已经明确指明是两个具体的类型转换错误
2.仔细研究了下工具类
问题代码如下
return JSON.parseArray(JSON.toJSONString(list), list.get(0).getClass());
之前的大哥写的逻辑问题,Json.parseArray 中 list.get(0).getClass() 获取的实体类为传入的Dto,
而在service层实际上
List pageInfoEntityList 的类加载器已经变为 List pageInfoEntityList
了,所以 遍历时出错,而转换时未出错则是因为所谓的泛型擦除。工作类中的自动擦除了List中的PageInfoEntity类型
解决方法
copyBeanUtils时,指定转换的类型
public static <T> List copyList(List<T> list, Class clazz) {if (CollectionUtils.isEmpty(list)) {return new ArrayList();}System.out.println(clazz);return JSON.parseArray(JSON.toJSONString(list), clazz);}
调用如下
List<PageInfoEntity> pageInfoEntityList = new ArrayList<>();pageInfoEntityList =CopyBeanUtils.copyList(pageInfoDtoList,PageInfoEntity.class);
采坑不用,以后得注意点了
我是和弦,一名最近回归5线城市的互联网枸杞人。
文章对您有帮助的话,烦请点个赞。
CopyBeanUtils坑,xxDto cannot be cast to xxxEntity 类型转化错误相关推荐
- SQL Server 2008 Datetime Cast 成 Date 类型可以使用索引(转载)
很久没写blog,不是懒,实在是最近我这的访问速度不好,用firefox经常上传不了图片 ....... 今天无意发现了SQL Server 2008 Datetime Cast 成 Date 类型可 ...
- Nacos小坑——启动异常以及正常启动后账号密码错误问题解决
Nacos小坑--启动异常以及正常启动后账号密码错误问题解决 前言: 最近在学习SpringCloud alibaba,启动nacos时遇到如下问题: 1.正常解压压缩文件后,在bin目录下直接双击s ...
- 全网详细解决java.lang.ClassCastException: xxx类型 cannot be cast to xxx类型
文章目录 1. 文章引言 2. 复现错误 3. 分析错误 4. 解决错误 5. 文章结论 1. 文章引言 xxx类型可以为如下类型: 我们自定义的类: Student类 Project类 Person ...
- 使用pagehelper踩的坑PageHelper cannot be cast
java.lang.ClassCastException: com.github.pagehelper.PageHelper cannot be cast 出现这个的问题在于配置的问题.4.2版本前的 ...
- mysql format函数对数字类型转化的坑
原值param = 1234.5678 format(param, 2) (不建议) 结果,字符串类型,123,4.57 会导致你图表char 生成失败,直接变0 convert(para ...
- 填坑记1-nrf52840出现error flash download failed -cortex-M4错误的解决办法-清风电子开发板
填坑类型: nrf52840出现error flash download failed -cortex-M4错误 使用板子:清风电子开发板 问题描述: keil4出错,keil5不出错(意思是其他ke ...
- Hive函数05_细说CAST函数(数据类型转化)
一.Hive的隐式转换 Hive内置数据类型由基本数据类型和复杂数据类型组成,基础类型例如下图所示的几种 今天的话题是研究Hive数据类型之间的转换.hive同java一样,也包括隐式转换(impli ...
- Java后台接收参数出现java.lang.Integer cannot be cast to java.lang.Double错误(已解决)
在Java接受前端传过来的数据信息的时候,使用List<List< double>>进行接收结果出现这个错误 java.lang.Integer cannot be cast ...
- 别让数据坑了你!用置信学习找出错误标注(附开源实现)
星标/置顶小屋,带你解锁 最萌最前沿的NLP.搜索与推荐技术 文 | JayLou娄杰(NLP算法工程师,信息抽取方向) 编 | 北大小才女小轶 美 | Sonata 1 前言 在实际工作中,你是否 ...
- python动态类型的坑_在Python中避免动态类型错误的策略是什么(NoneType没有属性x)?...
forgetting to check a type 这没什么意义.你很少需要"检查"一个类型.你只需运行单元测试,如果你提供了错误的类型对象,事情就会失败.根据我的经验,你不需要 ...
最新文章
- javascript requestAnimationFrame 解决 setTimeout、setInterval 时间不准的方法。
- OpenCV之mixChannels()函数使用说明
- 训练技巧 | 功守道:NLP中的对抗训练 + PyTorch实现
- 在xcode上把你的app多语言国际化(NSLocalizedString)
- 学习笔记(50):Python实战编程-Frame
- String Problem(HDU-3374)
- python基础27 -----python进程终结篇-----IO模型
- 利用T-SQL动态定义重复SQL Server数据库表行
- linux usr目录权限不够,【ARM-Linux开发】Ubuntu下的/usr目录权限,导致不能使用sudo命令的修复...
- linux装软raid,LINUX中软RAID的实现方案
- 孪生网络图像相似度_孪生网络(Siamese Network)
- tlwn823n无线网卡驱动 linux,centos 6.5安装 TP-link TL-wn823n驱动
- 上位机软件工程师_自动化项目如何做?PLC工程师教你几招!
- 隐马尔可夫链模型学习总结
- java代码区出现红色,绿色怎么办
- 微信公众号推广的40个有效果的方法
- 使用计算机有关的活动,有关计算机的活动策划书
- C++ endian转换
- c语言void delay是什么意思,delay什么意思
- 百度地图使用,以及一些api