захватываемые локальные переменные должны быть явным образом объявлены как final или фактически являться таковыми. Лямбда-выражения могут захватывать лишь локальные переменные, значение которых задается однократно (примечание: захват переменной экземпляра класса можно рассматривать как захват локальной final-переменной this). Например, следующий код не скомпилируется, поскольку переменной portNumber значение присваивается дважды: