成功解决:java.lang.String cannot be cast to java.lang.Integer

在改造代码的时候遇到的问题,关键还搞了很久。前端传输两个参数(分页的页码和大小),开始是使用拼接的形式直接调用后台接口。在使用axios进行二次封装后、不想使用拼接的形式,想直接传递参数给后端,后端使用Map进行接收,然后使用key-value的形式获取传来的数据。结果后端获取后的转化出了问题。。。

特此记录

1、问题说明

字符串不能转换为 java.lang.Integer。这个转换和Map有关联

2、错误原因

map里存放的是key-value的键值对。如果你放入(put)的时候是Integer、直接强制类型转换没问题(Integer)XXX如果你放入的时候是字符串,内容是数字,强转就会报错Integer.parseInt(maps.get("page")); 或者Integer.valueOf(maps.get("page")); 同样会报错。【这个就和我当前的状况一样、前端使用params传递参数、后端使用map接收。】

为了成功转换、可以使用: Integer currentPage = Integer.parseInt(maps.get("page").toString());

前端调用后端接口、传递参数
在这里插入图片描述
后端接口设计、获得参数
在这里插入图片描述

3、解决方法

看2解析

Integer currentPage = Integer.parseInt(maps.get("page").toString());

猜你喜欢

转载自blog.csdn.net/weixin_43304253/article/details/127233432