- 代码运行时直接抛异常报错,这个算是不幸中的万幸,至少可以及时发现并去解决
- 代码运行不报错,但是业务逻辑莫名其妙的出现各种奇怪问题,这种就比较悲剧了,因为这个问题稍不留神的话,可能就会给后续业务埋下隐患。
接手的项目中有一个按照给定数量,顺序筛选明细的业务。
简单来说,就是有一堆明细数据,需要按照明细的生成时间,筛选出足够数量的明细放到新list。
原始代码逻辑如下
预计结果:
完全满足的明细: 1
部分满足的明细: 0
实际结果:
完全满足的明细: 1
部分满足的明细: 2
为什么?
语句 | 普通for循环 | for-each | Java8-forEach |
---|---|---|---|
return | 跳出循环,直接返回方法 | 跳出循环,直接返回方法 | 跳过当前元素,继续执行循环 |
break | 跳出循环,继续执行方法 | 跳出循环,继续执行方法 | 不可用 |
continue | 跳过当前元素,继续执行循环 | 跳过当前元素,继续执行循环 | 不可用 |
因为 Java8-forEach 中的 return 不是之前的 return。
修改后
结果
搞不懂有些人为什么特别喜欢用新的东西,新的写法能够提高运行效率?还是能够提升代码健壮性?不反对追求创新,追寻新技术但是搞不明白的情况下盲目上新很有可能产生问题。