【发布时间】:2016-02-26 10:42:33
【问题描述】:
我在类级别声明了两个 final 变量,但它们没有被初始化。
所以,现在当我尝试为该类创建默认构造函数时,它会给出错误提示The blank final field may not have been initialized。
为什么会出现这个错误?为什么需要在构造函数中初始化最终变量?
我还有另一个查询,那就是,没有默认构造函数就不能创建实例吗?即使我们有参数化的构造函数?
【问题讨论】:
-
您必须始终使用构造函数初始化最终字段。必须在对象实例化期间分配最终字段。无论构造函数如何 - 每个最终字段都必须分配一个值。
-
@mlewandowski 您不必使用构造函数来执行此操作 - 您可以直接为字段分配值或使用初始化程序块(基本上是等效的)。
标签: java constructor initialization final