28
for (SomeListElement element : objectWithList.getList()) { ... }
什麼是上面的代碼轉換爲?Java中的每個表達式都被翻譯成什麼?
我什麼最感興趣的是,如果叫getList()
方法一次,或在每次迭代/元素?
for (SomeListElement element : objectWithList.getList()) { ... }
什麼是上面的代碼轉換爲?Java中的每個表達式都被翻譯成什麼?
我什麼最感興趣的是,如果叫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();
}
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Iterable.html – vemv 2013-04-29 09:05:56
這是'的簡寫迭代器「解決方案。 – skuntsel 2013-04-29 09:07:33
在問這個問題之前你做過什麼研究?語言規範似乎是一個顯而易見的地方,它給出了非常清晰的答案。 http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.14.2 – 2013-04-29 09:22:42