Вы можете инициализировать конечные переменные экземпляра до завершения конструктора. Согласно JSL
Чистая конечная переменная экземпляра должна быть обязательно назначена в конце каждого конструктора класса, в котором она объявлена; в противном случае возникает ошибка времени компиляции.
blockquote>Заключительная переменная в Java - это конечная переменная, которая не инициализируется в объявлении
. Таким образом, есть два способа сделать это.
способ 1: В конструкторе
class Program { final int i3; Program() { i3 = 10; } }
способ 2: В блоке экземпляра
class Program { final int i3; { i3 = 10; } }