>我正在尝试创建具有少量常量的枚举。我希望枚举是单例的。使用以下代码,我在日食中收到编译错误:
语法错误,插入"(">
以完成第 5 行的方法声明。我无法找出问题所在。
public enum Days {
SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY;
INSTANCE; // line 5
public Days getInstance() {
return INSTANCE;
}
}
在枚举声明中,;
在最后一个枚举值之后使用。
所以在这里:
SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY;
INSTANCE;
这应该被删除:
INSTANCE;
我希望枚举是单例
已经是这样了,但是对于枚举值(SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY
(,每个值都是一个单例。
枚举类本身不是单例,也不是为单例而设计的。
而不是尝试以这种方式访问枚举类:
public Days getInstance() {
return INSTANCE;
}
仅使用类:Days
删除INSTANCE
行,并静态访问枚举,如下所示:Days.MONDAY
.
枚举不是要实例化的,这意味着尝试使枚举成为单例是没有意义的。
不能中断 ENUM 变量的声明,然后再次继续。 将 INSTANCE 添加到第 3 行,带逗号,您将能够编译程序。
周日,周一,周二,周三,周四,周五,周六,实例;