代码之家  ›  专栏  ›  技术社区  ›  draganstankovic

为什么会有人做额外的局部变量只是为了把最后的关键字放在上面?

  •  4
  • draganstankovic  · 技术社区  · 15 年前

    我遇到过类似的代码:

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

    我怀疑作者不知道他可以直接将最后一个关键字放在方法签名中,因为在其他方法中,他只使用param1f,但我很好奇是否有人知道这会有什么用处?

    3 回复  |  直到 15 年前
        1
  •  0
  •   Andreas Dolk    15 年前

    在这种情况下,您可以重新分配 param1 如果 PARAM1 是最后的。

    所以有一点不同。但对我来说,它并不有用,只是因为我一般不会更改方法参数。

        2
  •  2
  •   agsamek    15 年前

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

    Runnable f(int i) {
        final int i2 = i;
        return new Runnable() {
            public void run() {
                System.out.println(i2);
            }
        };
    }
    
        3
  •  0
  •   irreputable    15 年前

    也许只是我一个人,但是我觉得写方法参数或者声明它们是最终的感觉很奇怪。我认为它们应该是默认的最终版本。它们不应该是“变量”