函数封装十四式 -- 第一式: 后台请求多个参数的统一转换为Integer类型 -SpringMVC

序言:

最近, 笔者整理了一些 曾经在江湖闯荡(在小黑屋中码代码) 中遇到的一些问题所总结的招式秘籍: 拿走不谢


一.拆招

写过web 的童鞋们 肯定会遇到一个多条件查询的场景, 注意: 本文针对的是多条件查询,如果你的后台就处理3个以下的参数, (别走,你以后会遇到的! 看看吧)

OK ,这么多参数我们少不了进行类型转换后 才会去调用后台业务代码
一般对于这么多参数我们无非两种处理:

当然这种方式并不是没有用武之地, 对于插入数据 或者更修改数据 它还是不二之选, 只不过这个应用场景决定它的局限性


不过,它的缺点也显而易见,就是前期在dao层编写的代码量有点恐怖


二. 修炼

Ok,说了这么多, 来看看笔者的一个不敢说有多完美的实现(针对第二种方式), 装一下足够了
注意: 我下面的意图是将前台的传来的参数 统一转换为整形处理

/**
  * 将请求参数转为整形后  存储在map中
  * 便于统一异常处理 和 获取
  * @param paramStr map.key
  * @param params  map.value
  * @return value值为Integer的map
  */
 private HashMap<String, Integer> getIntegerParamsMap(String[] paramStr, String[] params) {
  HashMap<String, Integer> paramMap = new HashMap<>();
  
  if(Objects.isNull(params) || params.length == 0) 
   return paramMap;
  //key 和 value 长度必须对应
  if(paramStr.length != params.length)
   return paramMap;
  
  for (int i = 0; i < paramStr.length; i++) {
   if(!Objects.isNull(params[i]) && !("").equals(params[i])){
    try {
     Integer newParam = Integer.valueOf(params[i].trim());
     paramMap.put(paramStr[i], newParam);
    } catch (NumberFormatException e) {
     throw new NumberFormatException(paramStr[i]+"输入类型不匹配, 请检查后再试!");
    }
   }
  }
  
  return paramMap;
 }
 

通过上面的函数封装 可以发现这样几个优点

  • 实现类型统一转换
  • 统一处理异常, 同时还能精准定位是那个参数类型转换异常
  • 代码量少, 这才是很多大佬毕生追求的方向

几点建议:

  • 你可以直接copy这个code 到你的项目中, 但是呢一定注意保证两个形参长度一致(这个只要眼神还行,基本不会错)
  • 还需要保证表示value的数组中不能有相同的key

三: 江湖再会

下一招: 函数封装十四式—第二式 :js实现三级目录联动统一ajax请求

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值