NetBeans `Convert to for (Iterator...) {}' suggestion



我有以下一段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为您提供了一种简单的方法来正确地完成它。

如果您要将代码完全保留在给定的形式中,则没有理由进行转换。这是等价的代码。我个人更倾向于让它更简洁、更有表现力。

如果你需要改变你的循环,让它做一些更复杂的事情,比如在你遍历列表时从列表中删除,正确的方法是使用迭代器,它可以很容易地添加到转换后的代码中。

相关内容

最新更新