有一次,在项目中,使用Arrays.asList{…}实现集合数据添加,代码如下
List<String> kVal=cardMap.get(dto.getIdCard());
if(kVal!=null && kVal.size()>0){//一个人可能有多个岗位
kVal.add(dto.getVal());
cardMap.put(dto.getIdCard(),kVal);
}else {
List<String> val=Arrays.asList(dto.getVal());
cardMap.put(dto.getIdCard(),val);//123-{"电工"}
}
因为测试环境中的测试数据原因,测试过程中,不会进去size>0的代码块中,从而功能测试通过,当项目发到生产环境上时候,接口报错,通过查看日志,定位到是kVal.add(dto.getVal());此处发生错误,开始我以为是dto对象为null的原因,通过sql查询,发现并不存在为null的情况,正当我一筹莫展的时候,公司架构师看到的此处的代码,给我发来一张截图,此刻我才恍然大悟。
借此记录,以便大家可以避坑。