为什么有人会制作额外的局部变量只是为了将final关键字放在上面?

时间:2010-06-20 16:53:30

标签: java methods local final

我遇到过类似的代码:

public void foo(String param1) { 
    final String param1F = param1;
    ...
}

我怀疑作者不知道他可以将final关键字直接放在方法签名中,因为在其他方法中他只使用param1F,但我很好奇是否有人知道这可能有用?

3 个答案:

答案 0 :(得分:2)

如果您需要从匿名类访问变量,则需要这样做,例如:

Runnable f(int i) {
    final int i2 = i;
    return new Runnable() {
        public void run() {
            System.out.println(i2);
        }
    };
}

答案 1 :(得分:0)

在这种情况下,如果param1是最终版,则可以重新分配param1,这是不可能的。

所以有一点点差异。但对我来说这没用,只是因为我一般不会改变方法参数。

答案 2 :(得分:0)

也许只是我,但我对写入方法参数或将其声明为最终感到奇怪。我认为默认情况下它们应该是最终的。它们不应该是“可变的”