带有常量的单例枚举



>我正在尝试创建具有少量常量的枚举。我希望枚举是单例的。使用以下代码,我在日食中收到编译错误:

语法错误,插入"(">

以完成第 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 行,带逗号,您将能够编译程序。

周日,周一,周二,周三,周四,周五,周六,实例;

最新更新