final
领域促进不变性。这是一件好事,海事组织。但是,我发现必须明确声明每个方法参数和局部变量为最终的,看起来很嘈杂并且使得LOC更宽;我只是期望它是这种情况。为什么默认情况下Java方法/构造函数参数不是最终的?
我会认为方法参数和局部变量默认为final
将是上级决定。为什么不是这种情况?
final
领域促进不变性。这是一件好事,海事组织。但是,我发现必须明确声明每个方法参数和局部变量为最终的,看起来很嘈杂并且使得LOC更宽;我只是期望它是这种情况。为什么默认情况下Java方法/构造函数参数不是最终的?
我会认为方法参数和局部变量默认为final
将是上级决定。为什么不是这种情况?
下面是一个正式的答案:最终默认情况下对于两个领域和参数来说都是更好的选择,但那艘船在1995年航行,在马逃脱后试图锁上谷仓门的价值相对较小。正如@PeterLawrey所指出的那样,尽管它很好地避免了变异参数,但它很少值得使它们成为最终的语法开销(事实上,在Java 8中,编译器在某些以前需要显式最终结果的情况下推断最终结果,例如内部捕获类)。
这里不是真正的问题。 – pvg
这里是不是提出任何修改或讨论下一个版本的Java的地方。请将这些问题/讨论引导至Oracle。 – Emz
您可以举一些例子,“根据我的经验,优秀的Java开发人员更喜欢最终参数。”? – steffen