可能重复:
何时应该使用final?
final除非必要,否则我倾向于声明所有变量.我认为这是一个很好的做法,因为它允许编译器检查标识符是否按预期使用(例如,它没有变异).另一方面,它使代码混乱,也许这不是"Java方式".
我想知道是否存在关于最终变量的非必要使用的普遍接受的最佳实践,以及是否应该了解该讨论的其他权衡或方面.
Dav*_*ton 14
"Java方式"本身就是一种内在的混乱.
我说这是一个很好的做法,但不是我遵循的.
测试通常可以确保我按照我的意图行事,而且对我的美学来说太过于杂乱.
Car*_*ter 12
我认为这是一个很好的实践,更多的是维护程序员(包括我!)而不是编译器.如果我不需要担心哪些变量可能在其中发生变化,那么考虑一个方法会更容易.
Mar*_*nik 11
我经常final在我的代码中应用局部变量,并且在首次使用关键字标记所有有效的最终变量之后,还更容易找到读取代码.我认为这是对代码的真正增强,并在此之后提交.final
至于代码杂乱的问题,当应用于局部变量时,我发现它不具有破坏性 - 事实上它使我更容易发现所有声明,因为语法着色.
但是,我必须承认,当我在参数,catch块,增强for循环以及除狭义上的局部变量之外的所有其他地方使用时,我确实发现它难以忍受final.这是非常不幸的,因为在这些情况下的重新分配更加令人困惑,它们应该在默认情况下确实是最终的.