我发现了一种类似于以下内容的方法:
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”就足够了。 我想念什么吗?使用这种方法有什么好处吗?
答案 0 :(得分:0)
是的,由于多余的局部变量,这是“错误代码”,因为您可以在参数中添加 final 而不必担心改变调用者的行为,请参见answer:
Java始终会在将参数发送到方法之前对其进行复制。这意味着最终的调用代码并不意味着任何区别。