Bởi vì tôi tin rằng đó là một thực hành lập trình tốt, tôi làm cho tất cả các biến (cục bộ hoặc thể hiện) final
nếu chúng chỉ được viết một lần.Bài tập biến cuối cùng với try/catch
Tuy nhiên, tôi nhận thấy rằng khi một giao biến có thể ném một ngoại lệ bạn không thể làm cho biết biến thức:
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ó cách nào để làm điều này mà không cần đến một biến tạm thời? (hoặc đây không phải là địa điểm phù hợp cho công cụ sửa đổi cuối cùng?)
Tôi nghi ngờ bạn có thể làm điều này mà không có biến tạm thời. – NPE
'cuối cùng int x = makeX();' chắc chắn. (try-catch in function) –
Gây sốc rằng JDK [vẫn không có 'tryParse'] (http://stackoverflow.com/questions/1486077/java-good-way-to-encapsulate-integer-parseint) . –