S.D*_*Dan 1 java loops for-loop is-empty
我在某处看到了以下代码,想知道检查是否有任何实际好处isEmpty。有不对吗?
List<Long> someIds = ..
if (someIds != null && !someIds.isEmpty()) {
for (Long someId : someIds) {
// something
}
}
Run Code Online (Sandbox Code Playgroud)
在迭代列表之前检查列表是否为空是初学者常见的反模式。它不会造成伤害,但没有必要。这是缺乏经验的表现。
允许空容器是一个相关的反模式。允许容器为空通常是错误的。然后,您必须检查是否为 null,而 null 容器和空容器之间的区别令人困惑。这种区别有意义吗?可能不会。
最后,如果变量不应该为空,那么最好不要检查和忽略空值。最好让代码因空指针异常而崩溃。大声失败。一声巨响就出去了。
考虑到所有这些,我通常会去掉这两项if检查并简单地写:
List<Long> someIds = ..
for (Long someId: someIds) {
// something
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |