Вы не можете использовать это, потому что переменные в лямбда должны быть окончательно или эффективно окончательно .Вы можете следовать этому коду:
IntStream.range(0, matchList .size())
.mapToObj(index -> {
Match match= list.get(index);
match.setMatchIndex(index);
return match;
})
.collect(Collectors.toList());
или использовать AtomicInteger
AtomicInteger index= new AtomicInteger(1);
matchList.forEach(match-> match.setMatchIndex(index.getAndAdd(1)));
ОБНОВЛЕНИЕ:
Как прокомментировал @HolgerПравильное решение -
IntStream.range(0, matchList.size())
.forEach(index -> matchList.get(index) .setMatchIndex(index));
, и если вы хотите использовать какое-то предопределенное значение, это правильное решение:
IntStream.range(0, matchList.size())
.forEach(index -> matchList.get(index) .setMatchIndex(index + offset));