最近bug坑的太多了,忍不住总结1个

时间:2023-03-26 12:01:00


原有项目 商品有个 id 比如 12345,还有个 字符串的id,serviceCode比如GOODS-12345。

搜索的时候,用的是字符串格式,输入有点反人类,每次都带上"GOODS_"前缀。

 

界面输入写死"GOODS_" ,用户输入12345,后台用id接收,最终底层还是用 serviceCode搜索。

 

有个地方,编辑的时候,需要用户输入 字符串格式的"GOODS_12345”,

做了个工具代码,如果用户只输入了 非 GOODS_开头的字符串,自动加上 GOODS_,方便用户输入。

 

 

今天,自己配置商品的时候,出现一个坑,GOODS_12345,12345是复制的,结果 末尾有个 “ ”空格。

查询商品的时候,那个地方做了 字符串trim处理,能够查询到商品。

但是 查询出来的商品,serviceCode是trim的,原始条件serviceCode没有trim,匹配不上,搞了3个小时,才搞定。

 

大概代码:

//前端输入"355604"这样的格式更方便,人性化, GOODS-355604也行
//复制粘贴,可能会有“空格符”
private void makeSureServiceCodeFormat(Recommend recommend) {
    String serviceCode = recommend.getServiceCode();
    if(StringUtils.isEmpty(serviceCode)){
        return;
    }
    String prefix="FW_GOODS-";
    if(!serviceCode.startsWith("FW_GOODS-")){
        serviceCode=prefix+serviceCode;
    }
    //血淋淋的教训,复制粘贴,可能会有“空格符”
    serviceCode=serviceCode.trim();
    recommend.setServiceCode(serviceCode);
}

 

今后再写代码的时候,字符串类型的,parse之类的函数,得考虑trim,优化些,可以容错。

免得下次复制粘贴 或者 按下了 空格符,看起来又不直接,搞的心烦意乱。