我對java.awt中的values()方法如何工作有點好奇。在Java規範文檔中可以看到,我們可以迭代每個循環中某個枚舉類型的所有值。例如Java中的枚舉類型:values()in for each loop
for (Planet p : Planet.values()) {
System.out.printf("Your weight on %s is %f%n",
p, p.surfaceWeight(mass));
}
我認爲每個循環遍歷所有值。在這個調用中,我們在每個循環調用中重複調用一個方法,所以它將如何遍歷所有枚舉類型或values()方法使用某種類型的迭代器。任何人都可以幫助我實現這個方法的文檔嗎?
你的問題是什麼? – Andremoniy
*「在此調用中,我們在每個循環調用中重複調用一個方法」*否,'values()'方法將被稱爲_once_,然後遍歷返回的Array。 – Tom
看看這個SO的答案,詳細描述[how-is-javas-for-loop-code-by-the-the-compiler](https://stackoverflow.com/questions/3433282/how-is- javas-for-loop-code-generated-by-the-compiler#3433775) – SubOptimal