Bug 竟然出在集合判空上,我人傻了

共 1198字,需浏览 3分钟

 ·

2021-10-01 13:18

1. 前言

还记得那天,新来的测试小姐姐跑来跟我说:“帅哥,你的代码报错喔”!我连忙解释:“小姐姐饭可以乱吃,话不能乱说喔,你怎么知道这个 Bug 是我写的呢?”

事情是这样的,某一天我 Review 实习生代码的时候,发现集合判空做的不到位;于是我带着三分随意,两分叹息,五分教育的心情改了他一行代码,由于代码过于简单遂提交完就抛在脑后了

结果代码到测试小姐姐的手上,就有了开头那一句招呼……

Bug 不 Bug 无所谓,我就是喜欢听别人喊我帅哥


2. 事件

2021 年某天,天气晴,心情阴

Review 的时候发现实习生小伙写了这么一段代码

List<Object> list;

//业务逻辑……

if (list.size() != 0) {
//业务逻辑
}
复制代码


我认为他的意图是当这个集合不为空,才去对数据进行操作,出于波浪线的提示我就把它改为了这样

List<Object> list = null;

//业务逻辑……

if (list.isEmpty()) {
//业务逻辑
}
复制代码

很明显我忘了取反,这直接导致了后面的某一行 get() 操作抛出了数组越界异常

老脸挂不住的我马上当着测试小姐姐的面,语重心长的对实习小伙说道:“你这个,代码,出了点小问题;我,帮你改好了,你下次耗子尾汁,莫要粗心大意!”

小伙连忙点头称是,我两对视会心一笑,他懂了,我也懂了!

后来我才知道,原来我上厕所的时候,实习生跟小姐姐说了,这 Bug 是我改出来的……


3. 一些思考

其实程序员在代码上粗心,不是什么稀奇事,更粗心的还有执行 rm -f * 搞错目录的呢,真人真事哈

说到底,除了自己本身写代码的时候要多加细心之外,还要养成良好的开发习惯,严格遵守开发规范,特别是刚写代码不久的阶段,这是你养成良好开发习惯、良好代码风格的最佳时机,过了这个阶段真的特别难纠正

比如这个集合判空的问题,我们就可以通过习惯来避免这样的问题,像现在我会习惯用 Hutool 的 CollectionUtil.isEmpty()CollectionUtil.isNotEmpty() 来对集合进行判空,这样能最大程度的避免上述那种粗心的问题


4. 写在最后

感谢阅读,我是 Java 雏鸡开发,如果我写的内容能让你觉得有所帮助,还望不吝点赞,关注,收藏,当然要是能转发就更好啦


作者:Java雏鸡开发
链接:https://juejin.cn/post/7011438881908195341
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。



浏览 23
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报