Ponieważ uważam, że jest to dobra praktyka programistyczna, tworzę wszystkie zmienne (lokalne lub instancji) final
, jeśli mają być napisane tylko raz.Końcowe przypisanie zmiennej z próbą/przechwytywaniem
, zauważam jednak, że gdy zmienna cesja może rzucić wyjątek nie można dokonać powiedział zmienna końcowa:
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
}
Czy istnieje sposób to zrobić bez uciekania się do zmiennej tymczasowej? (lub czy nie jest to odpowiednie miejsce na ostateczny modyfikator?)
Wątpię, możesz to zrobić bez zmiennej tymczasowej. – NPE
'final int x = makeX();' zdecydowanie. (funkcja "próbuj złapać") –
Szokujące, że JDK [nadal nie ma 'tryParse'] (http://stackoverflow.com/questions/1486077/java-good-way-toapsapsulate-integer-parseint) . –