鉴于Collection<Object> foo,我通常会在迭代之前进行此检查:
if (foo != null && !foo.isEmpty()) {
for (Object f : foo) {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
我只是想知道,这被认为是最佳实践吗?isEmpty()检查不应该是多余的,因为for()它只会忽略一个空集合而不会抛出错误?
null检查如何- 这是必要的还是有办法for()简单地忽略null集合?(没有尝试捕捉 for 循环)
isEmpty() 检查不应该是多余的,因为 for() 只会忽略空集合而不会抛出错误?
这是多余的,for在空集合上使用增强是完全无害的。请注意,这样做确实会创建一个迭代器对象,因此该检查可能会提供一些非常小的内存流失保护,但通常如果这样做值得,您将有更大的问题需要解决。
空检查怎么样——这是必要的还是有办法让 for() 简单地忽略空集合?(没有尝试捕捉 for 循环)
您需要null检查,除非您要捕获 NPE(您说您不想这样做)或者您要允许该 NPE 传播给调用者(例如,因为在逻辑上foo永远不应该null在那个点,或者相似的)。
| 归档时间: |
|
| 查看次数: |
971 次 |
| 最近记录: |