使用 try/catch 的最终变量赋值
因为我相信这是一个很好的编程实践,所以我制作了所有(局部或实例)变量,如果它们只打算编写一次。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
}
有没有办法在不诉诸临时变量的情况下做到这一点?(或者这不是最终修饰符的正确位置?