为什么Java方法/构造函数参数默认不是最终的?

时间:2015-12-14 22:07:20

标签: java

final字段促进不变性。这是一件好事,IMO。但是,我发现必须明确声明每个方法参数和局部变量为final,看起来很吵,使LOC更宽;我只是期望它是这样的。

我原以为默认情况下方法参数和局部变量final是最好的决定。为什么不是这样?

2 个答案:

答案 0 :(得分:4)

这是一个正式的答案:默认情况下,对于这两个领域和参数来说,最终都是一个更好的选择,但是这艘船在1995年开航并且试图锁定谷仓的价值相对较小马逃跑后的门。正如@PeterLawrey建议的那样,即使避免变异参数也很好,但它很少值得使它们成为最终的语法开销(实际上,在Java 8中,编译器在某些情况下推断出最终结果,这些情况以前需要明确的最终结果,例如内部捕获类。)

答案 1 :(得分:-3)

Intellij允许您自定义代码生成。在首选项下 - >编辑 - >代码风格 - > Java - >代码生成。您可以点击显示make generated parameters final的按钮。