有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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建议我的是,这个局部变量状态可以声明为最终状态

我的问题是,将其作为最终版本将带来任何性能改进,或者如果没有,代码将获得什么好处


共 (3) 个答案

  1. # 2 楼答案

    我不知道将状态设置为最终状态对性能有什么好处,但PMD建议您这样做,因为在状态首次初始化后,您可能永远不会在状态上写东西

    所以,通过使其成为最终版本,您得到的只是您的代码不那么容易出错——如果您将其声明为最终版本,您就不能错误地覆盖它

  2. # 3 楼答案

    final表示不会更改局部变量。我的感觉是,方法应该很短,你应该能够很容易地理解它们,所以把变量设为final可能有点多余

    我更喜欢创建字段final,因为使整个类如此短是一个严重的限制。字段也可能存在局部变量没有的线程安全问题