如果我分别捕获异常,那么为什么需要将值设为 final ?例如 1. 这被认为是一种好习惯吗?如果是,为什么?如果不是为什么?
catch(final InputOutputException exception)
{// do stuff
}
如果我分别捕获异常,那么为什么需要将值设为 final ?例如 1. 这被认为是一种好习惯吗?如果是,为什么?如果不是为什么?
catch(final InputOutputException exception)
{// do stuff
}
在 Java 中可以声明任何东西final
——在这种情况下,声明类似于声明方法参数final
。
这样做的效果是您将无法重新分配值
catch(final InputOutputException ex) {
ex = new InputOutputException();
// ^ compile time error.
}
Exception
在实践中,我只有在需要在匿名类中使用时才真正见过这种用法,因为只final
允许以这种方式引用局部变量:
} catch (final Exception e) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
myLabel.setText(e.getMessage());
}
});
}
Robert Simmons Jr 在他的Hardcore Java一书中建议做一切 final
。这样做的理由是它将拼写错误和代码错误转化为编译时错误。
明确final
表示您没有更改该字段。
恕我直言,如果您的处理代码不是那么简短以至于读者无法轻松解决这个问题,那么您做错了什么。
我认为您应该将字段final
设置为类可以很长,但是方法应该足够简单,您可以确定它们是否是最终的。