Вы не можете ссылаться на не конечные переменные, потому что Java Language Specification так говорит. Из раздела 8.1.3: «Любая локальная переменная, параметр формального метода или параметр обработчика исключений, используемые, но не объявленные во внутреннем классе, должны быть объявлены окончательными». Полный абзац. Я вижу только часть вашего кода - по моему мнению, изменение локальных переменных - это странная идея. Локальные переменные перестают существовать, когда вы покидаете функцию. Может быть, статические поля класса будут лучше?