我正在为应用编写代码。但我收到以下错误。
我发布了截屏。请帮我解决错误。
错误出现在我使用枚举的部分。
public static enum Mode
{
static
{
CORRECT = new Mode("CORRECT", 2);
Mode[] arrayOfMode = new Mode[3];
arrayOfMode[0] = NO_ASYNC_TASK;
arrayOfMode[1] = NO_DOWNLOADED_DRAWABLE;
arrayOfMode[2] = CORRECT;
}
}
感谢每一个人的答案。
答案 0 :(得分:11)
将枚举声明为
public static enum MODE
{
NO_ASYNC_TASK,
NO_DOWNLOADED_DRAWABLE,
CORRECT
};
并以下列方式使用枚举
MODE.NO_ASYNC_TASK
答案 1 :(得分:3)
您的定义需要一些增强功能。首先,不需要将枚举定义为静态。此外,您需要将所有枚举放在特定的独立类中,而不是与其他类,这将使您的解决方案更有条理。另外,'static'是该语言的保留关键字,因此不需要对内部块使用静态。
您可以定义带或不带整数值的枚举,如下所示:
public enum Mode
{
NO_ASYNC_TASK,
NO_DOWNLOADED_DRAWABLE,
CORRECT
}
或
public enum Mode
{
NO_ASYNC_TASK(1),
NO_DOWNLOADED_DRAWABLE(2),
CORRECT(3);
private final int id;
Mode(int id) { this.id = id; }
public int getValue() { return id; }
}
答案 2 :(得分:2)
从枚举定义中删除static
修饰符,或将您的枚举带入其他类
答案 3 :(得分:1)
从同一个类中的枚举声明中删除“public”,因为在一个java文件中,必须只有一个公共类,而且“static”。
答案 4 :(得分:1)
在使用常量时通常使用枚举,充当为常量提供类型。
而不是说:
public static final int MALE = 1;
public static final int FEMALE = 2;
你可以说
public enum Gender {
MALE, FEMALE;
}
并将其称为Gender.MALE
和Gender.FEMALE
。
如果没有枚举,setGender
的方法需要接受int
(在上面的示例中),我可以传递除1或2以外的任何内容。那里的代码需要检查是否int被传递给常量等,Enums
在这种情况下提供了一种简洁明了的方法。