Poiché ritengo sia una buona pratica di programmazione, creo tutte le variabili (locali o di istanza) final
se sono destinate a essere scritte una sola volta.Assegnazione variabile finale con try/catch
Tuttavia, ho notato che quando un'assegnazione variabile può generare un'eccezione Non è possibile effettuare detto variabile finale:
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
}
C'è un modo per fare questo senza ricorrere a una variabile temporanea? (o non è questo il posto giusto per un modificatore finale?)
Dubito che sia possibile farlo senza una variabile temporanea. – NPE
'final int x = makeX();' sicuramente. (try-catch in function) –
Shocking che il JDK [non ha ancora un 'tryParse'] (http://stackoverflow.com/questions/1486077/java-good-way-to-encapsulate-integer-parseint) . –