Поскольку я считаю, что это хорошая практика программирования, я делаю все мои (локальные или экземпляры) переменные final
, если они предназначены для записи только один раз.
Однако я замечаю, что когда присваивание переменной может вызывать исключение, вы не можете сделать указанную переменную final:
final int x;
try {
x = Integer.parseInt("someinput");
}
catch(NumberFormatException e) {
x = 42; // Compiler error: The final local variable x may already have been assigned
}
Есть ли способ сделать это, не прибегая к временной переменной? (или это не подходящее место для окончательного модификатора?)