使用try/catch进行最终变量赋值
- 论坛
- 使用try/catch进行最终变量赋值
19 浏览
使用try/catch进行最终变量赋值
因为我相信这是一个良好的编程实践,所以如果我的(局部或实例)变量只打算被写一次,我会将它们全部声明为final。然而,我注意到当一个变量赋值可能会抛出异常时,就不能将该变量声明为final:
final int x;
try {
x = Integer.parseInt("someinput");
}
catch(NumberFormatException e) {
x = 42; // 编译错误:final局部变量x可能已经被赋值
}
有没有一种方法可以在不使用临时变量的情况下实现这一点?(或者这不是使用final修饰符的正确场合吗?)