3

我目前正在从事一个 grails 项目。我在某个项目文件夹中创建了一个枚举,并希望从位于另一个项目文件夹中的类中访问它。我的枚举看起来像这样:

public enum Options {  


OPTION_1("Option_1"),
OPTION_2("Option_2"),
OPTION_3("Option_3");

final String option;

Options(String option) {
    this.option = option;
}  

}

现在,我在从应用程序中的某个类调用该枚举时遇到问题。例如:

Response{
option = new Option.OPTION_1("Option_1") //not sure on how to call an enum
}

但是我在这里想要做的是将枚举分配给 Response {} 部分中的属性选项..

我将如何正确地做到这一点?请帮忙?谢谢。

4

6 回答 6

7

枚举是预定义的对象,它会有一个私有构造函数,你不能用 new 创建一个新实例。你只需要调用 Option.OPTION_1;

Response{
option = Option.OPTION_1; 
}
于 2012-09-11T07:34:33.183 回答
4

您只需要引用它,因为Options.OPTION_1枚举没有新内容。

Option option = Options.OPTION_1;
于 2012-09-11T07:33:34.817 回答
4

您不能实例化枚举对象,唯一的实例由您在枚举类中定义。

所以正确的做法是:

Response {
    option = Options.OPTION_1;
}
于 2012-09-11T07:33:39.767 回答
2

您不能创建枚举的新实例。没有必要,因为它只能保存固定数量的值。option = new Option.OPTION_1("Option_1")也会这样做。

于 2012-09-11T07:39:34.973 回答
1

应该管用。

Response{
def option = Option.OPTION_1;
}

相关链接groovy 中的枚举

于 2012-09-11T07:33:04.277 回答
1

不知道其中的 grails 部分,但您的用法enum似乎不正确

如果你有一个枚举

public enum Day {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
    THURSDAY, FRIDAY, SATURDAY 
}

Day.MONDAY您可以使用,Day.SUNDAY等访问单个值。

请检查java 文档

于 2012-09-11T07:35:54.900 回答