Bug 竟然出在集合判空上,我人傻了
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
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。