我有以下Java代码
ImmutableList<Element> elements = ...;
for (Element e : elements) {
e.doSomething();
}
其中ImmutableList
为part of the Guava library。 NetBeans建议我使用`Convert to for(Iterator ...){}&#39;来转换代码。导致以下转变的建议
ImmutableList<Element> elements = ...;
for (Iterator<Element> it = elements.iterator(); it.hasNext();) {
Element e = it.next();
e.doSomething;
}
我没有看到这种转变的原因。我使用的是Java 1.7和NetBeans 7.4。有人可以启发我吗?
答案 0 :(得分:5)
这样的转换有时值得做其他事情的第一步,这就是为什么你的IDE为你提供了一种简单的方法来正确地做到这一点。
如果您要完全按照给定的格式保留代码,则没有理由进行转换。它是等效的代码。我个人宁愿把它留在更简洁和富有表现力的每种形式中。
如果你需要改变你的循环以便它做一些更复杂的事情,比如在遍历它时从列表中删除,正确的方法是使用迭代器,它可以很容易地添加到转换后的代码中。 / p>