代码之家  ›  专栏  ›  技术社区  ›  rudraraj

java中未声明最终变量

  •  1
  • rudraraj  · 技术社区  · 3 月前

    我在课堂上宣布了我的最后一个修饰语。我没有给它们赋值,因为我在构造函数中这样做。

    public class Parent {
        private final String name;
        private final String dob;
    
        public Parent() {
            System.out.println("no args constructor");
        }
    
        public Parent(String name, String dob) {
            this.name = name;
            this.dob = dob;
            System.out.println("in parent constructor");
        }
    }
    

    然而,我无法理解为什么java会给我一个错误,即我的两个最终变量都没有初始化?

    你能告诉我我在这里错过了什么概念吗?

    非常感谢。

    1 回复  |  直到 3 月前
        1
  •  3
  •   Basil Bourque    3 月前

    填充 final 施工结束前的田地

    你有两个构造函数。一个填充 最终的 字段,另一个没有。编译器会提醒您忽略了填充 最终的 其中一个构造函数中的字段。

    成为 最终的 意味着以后无法分配值。您必须填充 最终的 施工结束时的田地。

    解决:

    • 如果不需要,请删除no arg构造函数。
    • 编辑no arg构造函数,为 最终的 领域。