记一次找bug的过程(boolean 与 Boolean)
2018-03-22 15:34
369 查看
公司网络下有多个服务模块,我所负责的模块A需要向工程师甲的接口请求并接收数据。从工程师甲手里拿到的接口文档示例如下:
(这是返回的字段列表)
按照国际惯例,我在本地下写了接收json的bean。如下:
public class Test{
private boolean isAuth;
private boolean fieldB;
(get set 方法略)
}
因为本来我就只是为了避免前端页面出现跨域问题,所以做了中间工作的转发,也就是B服务器返回什么我就直接返回给前端,代码写好后,模拟测试一遍,觉着网络没问题我就发布到测试环境里去。
前端在测试的时候,觉着数据不对,前端拿到的是:{"isAuth":false,"fieldB":true},isAuth应该是true,可是从我后台拿到的isAuth却是false。当时我的第一反应就是甲服务器的数据问题,和我无关,把问题抛给甲后,甲根据服务器日志告诉我返回的是:{"isAuth":true,"fieldB":true}。当时就有点不明白什么原因,莫非灵异事件?仔细校对文档,每个字段都是正确的,clean一下,结果仍是fasle,饭店到了后,仍未解决问题。。。
2点上班后,甲问我找到原因了吗?
我说:没有找到,怀疑是isAuth是boolean型,可能字段名有误,isAuth默认成了false,考虑灵异事件,准备删掉原来的bean,重新搞一个。
甲:isAuth的类型是Boolean,如果isAuth是小写的boolean的话,在转换过程中会找不到,会默认为false,所以当时代码里就写成了Boolean,以对象的方式。(ps:至于文档,我猜测是甲在写文档的那段时间,因为忙,也没有注意到,就直接写成了boolean。)
最终,代码修改为 private Boolean isAuth; 问题就解决了。这次找bug,也让我想起了基础课的时候,老师说的boolean类型的变量,都不要字段名前带is,如果一定要带,那就改为Boolean类型。
ps:感兴趣转换过程中为什么会找不到的话,可以百度搜索:boolean is
(这是返回的字段列表)
字段名 | 类型 |
isAuth | boolean |
filedB | boolean |
public class Test{
private boolean isAuth;
private boolean fieldB;
(get set 方法略)
}
因为本来我就只是为了避免前端页面出现跨域问题,所以做了中间工作的转发,也就是B服务器返回什么我就直接返回给前端,代码写好后,模拟测试一遍,觉着网络没问题我就发布到测试环境里去。
前端在测试的时候,觉着数据不对,前端拿到的是:{"isAuth":false,"fieldB":true},isAuth应该是true,可是从我后台拿到的isAuth却是false。当时我的第一反应就是甲服务器的数据问题,和我无关,把问题抛给甲后,甲根据服务器日志告诉我返回的是:{"isAuth":true,"fieldB":true}。当时就有点不明白什么原因,莫非灵异事件?仔细校对文档,每个字段都是正确的,clean一下,结果仍是fasle,饭店到了后,仍未解决问题。。。
2点上班后,甲问我找到原因了吗?
我说:没有找到,怀疑是isAuth是boolean型,可能字段名有误,isAuth默认成了false,考虑灵异事件,准备删掉原来的bean,重新搞一个。
甲:isAuth的类型是Boolean,如果isAuth是小写的boolean的话,在转换过程中会找不到,会默认为false,所以当时代码里就写成了Boolean,以对象的方式。(ps:至于文档,我猜测是甲在写文档的那段时间,因为忙,也没有注意到,就直接写成了boolean。)
最终,代码修改为 private Boolean isAuth; 问题就解决了。这次找bug,也让我想起了基础课的时候,老师说的boolean类型的变量,都不要字段名前带is,如果一定要带,那就改为Boolean类型。
ps:感兴趣转换过程中为什么会找不到的话,可以百度搜索:boolean is
相关文章推荐
- 记一次系统稳定性问题的分析处理过程(因CallContext使用不当而造成bug)
- 记录一次.Net框架Bug发现和提交过程:.Net Framework和.Net Core均受影响
- 记录一次bug解决过程:eclipse集成lombok插件
- 记一次安卓BUG修复的过程
- 记一次bug解决过程
- 一次BUG定位的过程与总结
- 记录一次软件Bug发生的过程
- 记一次erlang分布式系统的bug修复过程
- 记录一次bug解决过程:eclipse Installed JREs 配置引出的问题
- 一次bug的处理过程-OA重复档案的问题 推荐
- 记录一次bug解决过程:else未补全导致数据泄露和代码优化
- 记一次调bug的过程:windows下查找java应用程序CPU与内存过高
- 记一次 BUG 的排查过程
- 一次buge寻找过程
- 记一次使用 git bisect 快速定位 bug 的过程
- 记一次线上分布式redis服务BUG发现与修复过程
- 记录一次bug解决过程:可维护性和性能优化
- 记录一次bug解决过程:velocity中获取url中的参数