java的类型转换异常_类型转换异常英文
2023-06-13 09:13:36 时间
自己的项目中,有个定时任务的模块,里面需要将返回的对象强转为某个实体类JobModel,可是在转换的过程中,却报出了java.lang.ClassCastException: com.jy.admin.server.model.JobModel cannot be cast to com.jy.admin.server.model.JobModel
at com.jy.admin.server.service.impl.JobServiceImpl.doJob(JobServiceImpl.java:103)这样的异常,
找到对应的那行代码
JobModel jobModel=(JobModel)jobDataMap.get(JOB_DATA_KEY);
就是这行代码出现了强转的错误.
期间也将该对象打印出来,发现确实是JobModel对象,debug的时候,那个对象里面存的数据也是正确的,初步怀疑是JobModel的serialVersionUID发生了改变,但后面发现并不是这个原因;
问题产生了就要解决,抓耳挠晒下,想到了一个解决办法,既然数据存在这个对象中没错,那就曲线救国一下,先将该对象转换成json,然后再转换回来,问题完美解决,代码如下,原因未知
Object temp = jobDataMap.get(JOB_DATA_KEY);
JobModel jobModel=new JobModel();
System.out.println(temp);
if (temp instanceof JobModel){
jobModel= (JobModel) temp;
}else {
String string = JSON.toJSON(temp).toString();
System.out.println(string);
jobModel = JSON.parseObject(string, JobModel.class);
}
最终解决方案:
麦奇: 楼主,原因是因为你们的项目中应该是采用了热部署,devtools,因为累加载器的不同所以会导致类型转换失败(5个月前#4楼)
琳达chu: 楼主我碰到的问题和你一模一样,是spring的devtools引起的,你把下面的依赖去掉应该就可以了
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
相关文章
- Java 异常错误 (Ljava/lang/String;)L java/lang/String;「建议收藏」
- java 字符串转集合_字符串转化为 List 集合
- java calendar获取年_Java Calendar获取年、月、日、时间,设置年、月、日
- 异常:java lang AbstractMethodError
- java中的类[通俗易懂]
- java.util.scanner sc_Java的Scanner sc=new Scanner(System.in)是什么意思「建议收藏」
- Java单例模式(Singleton)以及实现「建议收藏」
- java 测试程序代码运行时间过长_Java测试
- java prototype是什么,Java设计模式之原型模式(Prototype模式)介绍
- java处理异常这一篇就够了
- 国产优秀java开源博客-Halo
- Java 面试题
- Java 小工具推荐一枚
- https://haobin.work/2021/04/30/并发/Java线程池异常处理/
- MongoDB for Java详解数据库
- Java编程常见问题汇总详解编程语言
- Hbase For Java详解大数据
- JAVA 发送下载文件详解编程语言
- Java实现简单的数据库连接池代码详解编程语言
- Java获得代理环境下的真实IP详解编程语言
- java线程池详解编程语言
- java 日志记录使用slf4j优于log4j的原因详解编程语言
- ?使用 Java 连接 MySQL 数据库的步骤(java怎么连接mysql)
- 学习如何使用Linux环境运行Java程序(linux下的java)
- Linux上部署Java项目实践指南(linux部署java项目)
- 客户端建立Redis集群:Java客户端指南(redis集群java)
- 自动提交MySQL事务中的Java自动提交实践(mysql事务java)
- 时间处理处理Redis Java中的过期时间(redisjava过期)
- 清理Redis Java过期数据的自动清理实现(redisjava过期)
- 谷歌取得巨大胜利,美联邦法庭裁定 Android 对 Java API 属于“合理使用”
- 异常Java程序捕获Oracle异常从失败中学习(java捕获oracle)
- 基于Java内存溢出的解决方法详解