其他分享
首页 > 其他分享> > 一个bug引发了一场头发之间的较量,我取得了压倒性胜利,你遇到你的头发保得住吗?

一个bug引发了一场头发之间的较量,我取得了压倒性胜利,你遇到你的头发保得住吗?

作者:互联网

前几天调试公司项目的时候遇见了一个very奇怪的问题,今天在这里研究一下

关注公众号:Java架构师联盟,每日更新技术好文

场景

由于公司这边新增加了一个PDA的接口用来查询历史的停车流水数据,我首先从数据库里查除符合要求的数据,并用Stream流循环出流水数据的list,对循环出来的对象进行处理后面put到JSONObject,实际上put流水时,我并没有设置mMap这个键,但是测试时候的返回结果的每一层都给我包裹了一个mMap键,下面是一部分的代码

dayTraceParkPage = dayTraceParkService.selectByHashMap(queryMap,initPage);
List<DayTracePark> dayTraceParkList = dayTraceParkPage.getData();
if (null != dayTraceParkList && dayTraceParkList.size() > 0) {
   dayTraceParkList.stream().peek(e -> {
		
		JSONObject res = new JSONObject();
		// ... 	 这里省略一部分代码 
		// 	
		res.put("traceParkTraceDay", e);
		jsonArray.add(res);
		}).collect(Collectors.toList());
		}
		
return AjaxUtils.printJson(new JSONResult<Object>(jsonArray,"未关联历史流水表,获取在场流水成功", true));	
		
复制代码
// 返回结果 控制器我并没有设置mMap节点
{
    "data": [
        {
            "mMap": {
                "traceParkTraceDay": {
                    // ... 省略一部分数据
                },
                "traceTimeView": "1月9天"
            }
        },
    ],
    "message": "未关联历史流水表,获取在场流水成功",
    "statusCode": 0,
    "success": true
}
复制代码

开始我以为是jdk8(代码中的dayTraceParkList.stream().peek)语法的问题,我就又改用普通的加强for循环,但是结果还是一样的,开始我百思不得其解,后来,我一看发现是引错了包,我用的JSONObject是com.alibaba.dubbo.common 下面的,实际上我应该用 fastjson下面的包(菜得卑微

标签:Type,writer,保得住,头发,public,泛型,new,type,bug
来源: https://blog.csdn.net/weixin_47908466/article/details/110086766