最终方法参数与将参数重新声明为方法中的最终变量

时间:2018-10-24 11:42:27

标签: java final

我发现了一种类似于以下内容的方法:

private void methodA(String firstArg, String secondArg) {
    final String queueFirstArg = firstArg;
    final String queueSecondArg = secondArg;
    executor.execute(new Runnable() {
        public void run() {
           methodB(queueFirstArg, queueSecondArg);
        }
    }
}

这看起来像是错误的代码,将两个参数都设为“ final”就足够了。 我想念什么吗?使用这种方法有什么好处吗?

1 个答案:

答案 0 :(得分:0)

是的,由于多余的局部变量,这是“错误代码”,因为您可以在参数中添加 final 而不必担心改变调用者的行为,请参见answer

  

Java始终会在将参数发送到方法之前对其进行复制。这意味着最终的调用代码并不意味着任何区别。