#java #foreach
Выполняется ли метод "values()" при каждой итерации цикла, или же он выполняется
всего один раз?
for(String s : values()) {
//doSmth
}
Ответы
Ответ 1
Для того, чтобы показать вам суть, я сделал такой класс. Если вы его запустите, то вы увидите, что выведется строка "x 1"(из метода), и только после нее другие(уже из цикла) - "1","1","1". То есть мы эксперементально доказали, что метод для получении коллекции вызывается только один раз - в начале. static int x=0; public static void main(String[] args){ for(Integer s : returnCollection(x)) { System.out.println(s); //выводится в цикле } } static ArrayListreturnCollection(int x){ x++; System.out.println("x "+x); // выводится при вызове метода ArrayList r = new ArrayList<>(Arrays.asList(x,x,x)); return r; }
Комментариев нет:
Отправить комментарий