Java 中每个表达式的 for-each 都翻译为什么?
for ( SomeListElement element : objectWithList.getList() ) { ... }
上面的代码段翻译成什么?
我最感兴趣的是,如果调用该方法一次,还是每次迭代/元素调用一次?getList()
for ( SomeListElement element : objectWithList.getList() ) { ... }
上面的代码段翻译成什么?
我最感兴趣的是,如果调用该方法一次,还是每次迭代/元素调用一次?getList()
它相当于
for(Iterator<SomeListElement> i = objectWithList.getList().iterator();
i.hasNext(); ) {
SomeListElement element = i.next();
//access element here
}
它被翻译成下面的代码片段,并且只被调用一次。objectWithList.getList()
for (Iterator i = objectWithList.getList().iterator(); i.hasNext();) {
SomeListElement e = (SomeListElement) i.next();
}