情景:前端传来的数据是Map<String,String>不过我需要的是value的类型是Integer。
尝试1:将前端的数据类型设置为数字类型,无效。
尝试2:将String类型强转为Integer类型,Integer pageNumber = (Integer) map.get("pageNumber");
,无效,报错显示无法强转。
百度:https://www.cnblogs.com/zhangcheng1/p/11495844.html
得到答案:
你put的时候是integer 那么可以直接强转不会报错
Integer zzz = (Integer) paramszc.get(“testID”);
但是如果你放进去的时候是字符串,内容是数字,你强转就要报标题的错误了
Integer zzz1 = (Integer) paramszc.get(“exec”);
会报错
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
为了不报错,可以这样写
Integer.parseInt(params.get(“testID”).toString())
Integer pageNumber = Integer.parseInt(map.get("pageNumber").toString()) ;
测试可行!
于是又想到了这可能是装箱拆箱的实际场景。
装箱拆箱补课参考链接:https://blog.csdn.net/qq_40178464/article/details/79769081
基本数据类型包装类有八种,其中七种都有parseXxx的方法,可以将这七种的字符串表现形式转换成基本数据类型
https://www.cnblogs.com/yimian/p/6494119.html
但是好像跟装箱拆箱并没有过多的联系,所以正确的思考方式应该是去搜索“String类型如何转为Integer类型”
Java中Integer和String浅谈