我在看另一个 question关于 final 变量并注意到您可以在不初始化它们的情况下声明 final 变量(blank final 变量)。是否有理由这样做是可取的,什么时候这样做是有利的?
最佳答案
这对于创建不可变对象(immutable对象)很有用:
public class Bla {
private final Color color;
public Bla(Color c) {this.color = c};
}
Bla 是不可变的(一旦创建,它就不能改变,因为颜色是最终的)。 但是您仍然可以通过使用各种颜色构建它们来创建各种 Blas。
另见 this question例如。
编辑
也许值得补充的是,“blank final”在 Java 中具有非常具体的含义,这似乎在评论中造成了一些困惑 - 参见 Java Language Specification 4.12.4 :
A blank final is a final variable whose declaration lacks an initializer.
然后您必须在构造函数中分配那个空白的 final 变量。
关于java - 什么时候适合使用空白最终变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11345747/