Java 构造函数枚举错误
我想在这个枚举类中实现方法getLabel(),但我遇到了一个错误:“构造函数ProductCategory()未定义” 我已经有了我需要的构造函数,我还需要写什么?我试图编写默认构造函数,但再次出现错误Java 构造函数枚举错误,java,constructor,enums,Java,Constructor,Enums,我想在这个枚举类中实现方法getLabel(),但我遇到了一个错误:“构造函数ProductCategory()未定义” 我已经有了我需要的构造函数,我还需要写什么?我试图编写默认构造函数,但再次出现错误 另外,我完全是java初学者。错误来自enum成员的声明:由于构造函数使用字符串标签,因此需要提供字符串以传递给该构造函数: public enum ProductCategory { FOOD, BEVERAGE, DEFAULT; private final String label
另外,我完全是java初学者。错误来自
enum
成员的声明:由于构造函数使用字符串标签
,因此需要提供字符串以传递给该构造函数:
public enum ProductCategory {
FOOD, BEVERAGE, DEFAULT;
private final String label;
private ProductCategory(String label){
this.label = label;
}
public String getLabel(){
return label;
}
FOOD("food"), BEVERAGE("bev"), DEFAULT("[default]");
错误来自于
enum
成员的声明:由于构造函数使用字符串标签
,因此需要提供要传递给该构造函数的字符串:
public enum ProductCategory {
FOOD, BEVERAGE, DEFAULT;
private final String label;
private ProductCategory(String label){
this.label = label;
}
public String getLabel(){
return label;
}
FOOD("food"), BEVERAGE("bev"), DEFAULT("[default]");
您当前拥有的唯一构造函数需要传入字符串-但所有枚举值(食品
,饮料
,默认值
)都没有指定字符串,因此无法调用构造函数
两种选择:
- 添加无参数构造函数:
public enum ProductCategory { FOOD, BEVERAGE, DEFAULT; private final String label; private ProductCategory(String label){ this.label = label; } public String getLabel(){ return label; }
但这不会将标签与枚举值相关联FOOD("food"), BEVERAGE("bev"), DEFAULT("[default]");
- 在每个值上指定标签:
private ProductCategory() {}
食品
,饮料
,默认
)都没有指定字符串,因此它们无法调用构造函数
两种选择:
- 添加无参数构造函数:
public enum ProductCategory { FOOD, BEVERAGE, DEFAULT; private final String label; private ProductCategory(String label){ this.label = label; } public String getLabel(){ return label; }
但这不会将标签与枚举值相关联FOOD("food"), BEVERAGE("bev"), DEFAULT("[default]");
- 在每个值上指定标签:
private ProductCategory() {}
后者几乎可以肯定是您想要的。在声明枚举成员本身时,可以调用枚举构造函数
FOOD("Food"), BEVERAGE("Beverage"), DEFAULT("Default");
声明枚举成员本身时可以调用枚举构造函数
FOOD("Food"), BEVERAGE("Beverage"), DEFAULT("Default");
请注意,将枚举构造函数指定为
private
是多余的。可能重复的枚举构造函数不能写入默认构造函数。默认构造函数是编译器为未编写构造函数的类提供的构造函数。请注意,将枚举构造函数指定为private
是多余的。可能重复的构造函数不能编写默认构造函数。默认构造函数是编译器为未编写构造函数的类提供的构造函数。