java - 什么时候适合使用空白最终变量?

标签 java final

我在看另一个 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/

相关文章:

java - primefaces - 无 Activity 函数

java - 如何使用java将数据放入单独的新列csv中?

java - java中变量的数据类型如何转换

java - 编码约定 : final class instance in CAPITAL_LETTERS?

c - 使变量成为 const 或 final 是否节省字节或内存?

从内部类内部访问Java局部变量;需要声明为最终的,为什么它在 NetBeans 中有效?

java - SPNEGO 获取用户详细信息

java - 泛型和继承 - 代码中只需要父类(super class)型

java - 枚举与简单常量声明?

Java的final方法使用静态绑定(bind),但JVM在编译时使用 "invokevirtual"指令