Я понимаю передачу Java по значению и передачу по ссылке.Но я столкнулся с чем-то, что требует хорошего понимания.Я заметил, что, передавая значение массива методу, оно передается в виде ссылки в лямбда-выражении.
private static final List<Callable<String>> CALLABLE_LIST = new ArrayList<>();
Integer currentPageCount[] = {0};
for (int i = 0; i < 10; i ++) {
currentPageCount[0] = i;
CALLABLE_LIST.add(() -> validatePaginatedContent(currentPageCount[0]));
}
При печати этого списка всегда печатается последнее значение внутри массива.Что происходит с лямбда-функцией.
Ясность этого поведения будет оценена.