在 Java 中,有一种做法是声明每个变量(本地或类),如果它们确实是参数 final。
虽然这使代码更加冗长,但这有助于轻松阅读/掌握代码,并且由于意图明确标记,还可以防止错误。
你对此有什么想法,你遵循什么?
最佳答案
沉迷于:
- Final 字段 - 将字段标记为 final 会强制它们在构造结束时设置,使该字段引用不可变。这允许安全地发布字段,并且可以避免在以后读取时需要同步。 (请注意,对于对象引用,只有字段引用是不可变的 - 对象引用所引用的内容仍然可以更改,这会影响不可变性。)
- Final 静态字段 - 尽管我现在在过去使用静态 final 字段的许多情况下都使用枚举。
考虑但谨慎使用:
- 最终类 - 框架/API 设计是我考虑的唯一案例。
- Final 方法 - 与 final 类基本相同。如果您正在使用模板方法模式(例如疯狂并将内容标记为 final),那么您可能过于依赖继承而没有足够的委托(delegate)。
除非感觉肛门,否则忽略:
- 方法参数和局部变量 - 我很少这样做,主要是因为我很懒,而且我发现它会使代码变得困惑。我完全承认我不会修改的标记参数和局部变量是“更正确的”。我希望它是默认值。但事实并非如此,而且我发现随着 final 的结束,代码更难理解。如果我在别人的代码中,我不会把它们拉出来,但如果我正在编写新代码,我不会把它们放进去。一个异常(exception)是你必须标记一些最终的东西以便你可以访问它来自匿名内部类。
关于java - 在 Java 中适用时使用 "final"修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/137868/