枚举 java 错位构造错误
enum java misplaced constructs error
下面的枚举声明有什么问题?我想写一个单例枚举,所以声明 INSTANCE
。
我收到错误 - "misplaced construct(s)"
public enum demo {
INSTANCE;
WHITE(21), BLACK(22), RED(23), YELLOW(24), BLUE(25);
private int code;
private demo(int c) {
code = c;
}
private demo() { }
public int getCode() {
return code;
}
}
为了编译它,只需将 ;
替换为 ,
,因为您还没有完成列出常量。
像这样:
INSTANCE,
WHITE(21), BLACK(22), RED(23), YELLOW(24), BLUE(25);
但是,既然你想要一个单例,我建议去掉 INSTANCE
值,并引入一个 static
成员来保存实例:
public static Demo INSTANCE = Demo.WHITE;
您不能像您所做的那样在一个 enum
class 中声明两组实例。
不清楚为什么你想要一个枚举的枚举单例,但是如果你想要一个 INSTANCE
是单例,那么你可以声明一个 static
变量是其中之一实例。
enum Demo {
WHITE(21), BLACK(22), RED(23), YELLOW(24), BLUE(25);
public static Demo INSTANCE = WHITE;
// rest unchanged except for demo->Demo
}
可以使用枚举单例模式:
enum DemoSingleton
{
INSTANCE(Demo.WHITE);
private Demo myDemo;
private DemoSingleton(Demo demo) { myDemo = demo; }
}
但那是没有用的;你可以只使用 Demo.WHITE
.
下面的枚举声明有什么问题?我想写一个单例枚举,所以声明 INSTANCE
。
我收到错误 - "misplaced construct(s)"
public enum demo {
INSTANCE;
WHITE(21), BLACK(22), RED(23), YELLOW(24), BLUE(25);
private int code;
private demo(int c) {
code = c;
}
private demo() { }
public int getCode() {
return code;
}
}
为了编译它,只需将 ;
替换为 ,
,因为您还没有完成列出常量。
像这样:
INSTANCE,
WHITE(21), BLACK(22), RED(23), YELLOW(24), BLUE(25);
但是,既然你想要一个单例,我建议去掉 INSTANCE
值,并引入一个 static
成员来保存实例:
public static Demo INSTANCE = Demo.WHITE;
您不能像您所做的那样在一个 enum
class 中声明两组实例。
不清楚为什么你想要一个枚举的枚举单例,但是如果你想要一个 INSTANCE
是单例,那么你可以声明一个 static
变量是其中之一实例。
enum Demo {
WHITE(21), BLACK(22), RED(23), YELLOW(24), BLUE(25);
public static Demo INSTANCE = WHITE;
// rest unchanged except for demo->Demo
}
可以使用枚举单例模式:
enum DemoSingleton
{
INSTANCE(Demo.WHITE);
private Demo myDemo;
private DemoSingleton(Demo demo) { myDemo = demo; }
}
但那是没有用的;你可以只使用 Demo.WHITE
.