假设我有以下代码:
for (Object obj : Node.getIterable()) {
//Do something to object here
}
和 Node.getIterable() 返回一个可迭代对象。 getIterable() 函数是每次都被调用还是仅在 for 循环开始时被调用?我应该将其更改为:
Iterable<Object> iterable = new Iterable<Object>();
//populate iterable with objects
for (Object obj : iterable) {
//Do something
}
最佳答案
Java 语言规范详细说明了 foreach 语句的作用。有关详细信息,请参阅“14.14.2 增强的 for 语句”(http://java.sun.com/docs/books/jls/third_edition/html/statements.html#14.14.2)。但简而言之,实际上该语言确实保证您正在迭代的表达式只会被计算一次。
关于java - 是否每次为Iterables调用for循环的 "condition"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7692160/