在每个循环中使用final in a

Jav*_*per 15 java final

我与有效的java有一点冲突.一方面,它强烈鼓励使用最终修饰符.它还鼓励使用foreach循环.

但是我没有在任何地方看到任何代码,代码如下:

for (final element e : list) {
  // do whatever.
}
Run Code Online (Sandbox Code Playgroud)

如果预计元素不会改变,那么使用final似乎是好的.为什么不那么常见?

Pet*_*rey 8

通常开发人员保留默认值,只在需要时添加代码.即什么是最短的代码编写更容易.想想一个演讲厅,他们要求你举手,如果你做了什么,然后他们要求你举手,如果你不这样做,大约一半的房间将不会投票.

恕我直言默认应该是最终的,你可以有一个var值可以改变的关键字.这样,更多的领域将是最终的.

在这种特殊情况下,我不会使局部变量最终,因为方法应该足够短,以便您可以推断变量是否被更改.如果你不能轻易解决这个问题,你的循环/方法太复杂了.

但是对于字段,我建议尽可能使这些最终,特别是如果它们不是私有的,因为它不是那么容易阅读它可能被使用的所有代码.


Boh*_*ian 6

它没有被使用,因为它的"代码噪音".

final关键字应该用于所有方法参数等,但它不是,因为虽然更"正确",但它的可读性较差.