java的类型转换异常_类型转换异常英文

java的类型转换异常_类型转换异常英文自己的项目中,有个定时任务的模块,里面需要将返回的对象强转为某个实体类JobModel,可是在转换的过程中,却报出了java.lang.ClassCastException:com.jy.admin.server.model.JobModelcannotbecasttocom.jy.admin.server.model.JobModelatcom.jy.admin.server….

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

自己的项目中,有个定时任务的模块,里面需要将返回的对象强转为某个实体类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的类型转换异常_类型转换异常英文

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

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

(0)
上一篇 2025年10月12日 下午1:43
下一篇 2025年10月12日 下午2:15


相关推荐

  • 用pycharm远程单步调试

    用pycharm远程单步调试配置远程 就在本地调试的同学可以跳过这步 1 菜单 Tools Deployment Configuratio 我这个 pycharm 是已经配置完的 有些菜单是亮的 所以请不要纠结为啥有点不一样 点那个 Configuratio 就可以了 2 打开之后 填写配置 SFTPhost 就是远程主机的 IP 地址 为了安全 我把我的 ip 改了下 配置的英文意思差不多都明白 说明下 Rootpa

    2026年3月27日
    2
  • Linux命令详解之 grep

    Linux命令详解之 greplinux 命令详解命令名称 grep globalsearch 打印匹配的行 内容 类似的命令包括 egrep fgrep rgrep 命令用法 grep 选项 匹配项 PATTERN 表示可选参数 grep 选项 e 匹配项 fPATTERN FILE PATTERN 为正则表达式命令概述

    2026年3月26日
    3
  • 手机安装busybox教程(去除busybox的xbin连接)

    Busybox,大家应该有所耳闻,其中集成了众多linux的命令和工具。有时候在手机上想使用find,grep等命令但是手机不支持。这时可以在手机上安装busybox.使用方法:1.确定手机型号cpu的指令集,cat/proc/cpuinfo如armv7,armv4,armv6,去网上下载二进制busybox文件。下载地址:http:

    2022年4月12日
    178
  • 测试用例的设计方法(全)「建议收藏」

    测试用例的设计方法(全)「建议收藏」测试用例的设计方法(全)等价类划分方法:一.方法简介1.定义 是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。   2.划分等价类: 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类

    2022年10月12日
    4
  • vue的$attrs_vue获取list集合中的对象

    vue的$attrs_vue获取list集合中的对象​说明本文用示例介绍Vue的$attrs和$listener的用法官网API—Vue.js$attrs和$listeners介绍Vue2.4中,引入了attrs和listeners,新增了inheritAttrs选项。$attrs:包含了父作用域中没有被prop接收的所有属性(不包含class和style属性)。可以通过v-bind=”$attrs”直接将这些属性传入内部组件。$

    2022年8月31日
    6
  • JUnit入门

    JUnit入门

    2021年12月8日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号