可能重复:
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建议我的是,这个局部变量状态可以被声明为最终状态。
我的问题是,将其设为最终会导致任何性能提升,或者如果不能获得代码可以获得哪些好处?
答案 0 :(得分:4)
取自以下文章:http://www.javapractices.com/topic/TopicAction.do?Id=23
这个问题也讨论了这个问题:Can excessive use of final hurt more than do good?
答案 1 :(得分:4)
final
表示不会更改局部变量。我的感觉是方法应该很短,你应该能够轻松地理解它们,因此使变量最终可能有点多余。
我更喜欢制作字段final
,因为整个课程都很短,这是一个严重的限制。字段也可能存在线程安全问题,而局部变量则没有。
答案 2 :(得分:1)
我不知道通过使状态最终来获得性能优势,但是PMD建议你这样做,因为在第一次初始化之后你可能永远不会写状态。
所以你最终得到的只是你的代码不容易出错 - 如果你宣告它是最终的,你就不能错误地覆盖它......