java.lang.ClassCastException: java.util.LinkedHashMap

Hello,大家好啊,今天在微服务开发中遇到一个很无语的问题,用mybatisplus分页写一个分页查询,我自己自定义封装了一个工具类PageUtils,返回的对象是PageUtils

我在web模块调用service模块的时候

这里能够去调用并且返回了值,说明web请求到了service

但是呢他给我返回了一个LinkedHashMap类型。。我明明在service模块返回的对象是PageUtils。结果我Web请求的回来的数据格式变成了LinkedHashMap,然后就是直接报错了因为我这里强转的是PageUtils   

PageUtils<ContentCategory> pageUtils = (PageUtils<ContentCategory>) resultCommon.getData();

查阅了半天资料才找到 原来是springboot内置jackson自动转换有问题,

其实这里 直接用LinkedHashMap也行,但是我不爽啊,凭啥我返回的是PageUtils,你给我来个

LinkedHashMap,办它!

第一想到的是  既然是模块调用模块  会不会是我@RequestBody没加,但是哈,检查了,基本该加的都加了

第二,我这里用的不是我自己定义的ResultCommon嘛

 那我直接在这边用泛型直接定义不就好   private T data; 然后呢去service模块

直接给你定义好,省的那个内置的json转换给我自己转成map ResultCommon<PageUtils<ContentCategory>> 

  

那么写好后,我再次启动又报错了

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is feign.codec.DecodeException: Type definition error: [simple type, class com.freshmall.utils.PageUtils]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.freshmall.utils.PageUtils` (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator)

,其实这个错误基本一眼就能看出来。工具类PageUtils  没写无参构造,加上去就好了,这里有人会问了,我都没有去调用无参,为什么还需要无参呢,额,这个其实idea底层调用的就是无参

这个坑,估计好多人都踩过

在启动,我看们到 现在这个对象就是PageUtils了,哈哈,到此问题解决了

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值