我有以下一段Java代码
ImmutableList<Element> elements = ...;
for (Element e : elements) {
e.doSomething();
}
,其中ImmutableList
是Guava库的一部分。NetBeans建议我使用"convert to for (Iterator…){}"建议转换代码,这会导致以下转换
ImmutableList<Element> elements = ...;
for (Iterator<Element> it = elements.iterator(); it.hasNext();) {
Element e = it.next();
e.doSomething;
}
我看不出这种转变的原因。我使用Java 1.7和NetBeans 7.4。有人能开导我吗?
这样的转换有时值得作为其他事情的第一步,这就是为什么您的IDE为您提供了一种简单的方法来正确地完成它。
如果您要将代码完全保留在给定的形式中,则没有理由进行转换。这是等价的代码。我个人更倾向于让它更简洁、更有表现力。
如果你需要改变你的循环,让它做一些更复杂的事情,比如在你遍历列表时从列表中删除,正确的方法是使用迭代器,它可以很容易地添加到转换后的代码中。