shiro中devtools:java.lang.ClassCastException: cn.model.User cannot be cast to cn.model.User 实体转实体

本文针对SpringBoot结合Shiro与Redis项目中出现的ClassCastException异常,提供了四种有效的解决方案,包括代码修改、利用JSON转化、配置热启动禁用及反射属性获取方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

springboot +shrio +redis 项目中意外发现一个exception:java.lang.ClassCastException:....User cannot be cast to cn....User,一个User对象不能转换成另一个User

方法一:直接在代码上修改 效果不错

 

利用net.sf.json包 将Object 转化为jsonObject  进而再转化为实体User,解决强转失败问题

 

方法二:见个别博客上说注释掉热启动,个人对项目修改启动造成麻烦,个人不太建议

修改方法:屏蔽热启动jar包,或修改热启动配置,禁止热启动,

方法三:解决方案就是在resources目录下面创建META_INF文件夹,然后创建spring-devtools.properties文件,文件加上类似下面的配置:

在spring boot项目resources目录下创建一个META-INF文件夹,在META-INF目录下再创建一个

spring-devtools.properties 文件 

加入以下代码即可解决

restart.include.companycommonlibs=tk/mybatis.*
方法四:利用反射获取属性

convertObjToEntity(Object redisObj) {   ReflectUtils.getFieldValue(redisObj, UserEntity.FIELD_STATUS)+"",0));} 需要每个字段进行遍历,效率太低,这里就不写了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值