java:为什么局部变量应该声明为final
Possible Duplicate:
Is there any performance reason to declare method parameters final in Java?
Why would one mark local variables and method parameters as “final” in Java?
我正在使用PMD查看代码冲突
在webService方法中,我有以下代码
public ServiceRequest getData()
{
Status status = new Status();
// code
}
PMD建议我的是,这个局部变量状态可以声明为最终状态
我的问题是,将其作为最终版本将带来任何性能改进,或者如果没有,代码将获得什么好处
# 1 楼答案
摘自以下文章:http://www.javapractices.com/topic/TopicAction.do?Id=23
这个问题也讨论了这一点:Can excessive use of final hurt more than do good?
# 2 楼答案
我不知道将状态设置为最终状态对性能有什么好处,但PMD建议您这样做,因为在状态首次初始化后,您可能永远不会在状态上写东西
所以,通过使其成为最终版本,您得到的只是您的代码不那么容易出错——如果您将其声明为最终版本,您就不能错误地覆盖它
# 3 楼答案
final
表示不会更改局部变量。我的感觉是,方法应该很短,你应该能够很容易地理解它们,所以把变量设为final可能有点多余我更喜欢创建字段
final
,因为使整个类如此短是一个严重的限制。字段也可能存在局部变量没有的线程安全问题