当声明finale实例时,为什么必须创建构造函数?

问题描述 投票:0回答:1

你好,当我尝试授课时出现错误

公共类成分{

private final String  id;
private final String name;
private final Type type;

public static enum Type {
    WRAP, PROTEIN, VEGGIES, CHEESE, SAUCE
}

“变量”类型“可能尚未初始化”

有人可以解释为什么吗?

java constructor instance final
1个回答
0
投票

您尚未初始化实例,因此未声明。如果未声明最终实例,则必须在构造函数中声明它,否则您将有一个实例无法使用(因为您说它是不可变的,但没有价值)

例如

class myClass {
    final ClassB classb; //undeclared, no reference/value
}

由类似的东西解决:

class myClass {
    final ClassB classb; //undeclared, no reference/value
    public myClass(){
        classb = new ClassB();
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.