Я хочу сделать result
переменную final
, как мне структурировать этот код, чтобы он аккуратно компилировался? Я знаю, что делал это в прошлом, но я не могу вспомнить, как я структурировал это, чтобы заставить это работать.
Следующий код является примером straw man
, код, который я пытаюсь очистить, намного сложнее, это просто перебор сути того, что я пытаюсь выполнить.
private boolean someMethod()
{
final boolean result;
try
{
// do the logic here that might throw the following
// exceptions
}
catch (final IOException ioe)
{
result = false;
}
catch (final ClassNotFoundException cnfe)
{
result = false;
}
return result;
}
Я не могу поместить result = true
в блок try
, потому что он не будет компилироваться с обоими блоками catch, жалуясь, что окончательная переменная уже может быть назначена.
Я не могу поместить его в блок finally
, потому что это вызовет те же жалобы, что и в блоке try
?
Я хочу иметь возможность установить result =
один раз и только один раз.
Так, где вы устанавливаете result = true;
, чтобы он правильно компилировался?