如何从另一个类调用枚举?

时间:2012-09-11 07:28:58

标签: grails enums

我目前正在开展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 {}部分中的属性选项..

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

6 个答案:

答案 0 :(得分:7)

枚举是预定义的对象,它将具有私有构造函数,您无法使用new创建新实例。您只需要调用Option.OPTION_1;

Response{
option = Option.OPTION_1; 
}

答案 1 :(得分:4)

您只需将其引用为Options.OPTION_1,枚举上没有新内容。

Option option = Options.OPTION_1;

答案 2 :(得分:4)

您无法实例化枚举对象,您在枚举类中定义的唯一实例。

所以正确的方法是:

Response {
    option = Options.OPTION_1;
}

答案 3 :(得分:2)

您无法创建枚举的新实例。没有必要因为它只能容纳固定数量的值。所以option = new Option.OPTION_1("Option_1")会这样做。

答案 4 :(得分:1)

应该有效。

Response{
def option = Option.OPTION_1;
}

相关链接Enums in groovy

答案 5 :(得分:1)

不知道这里的grails部分,但您对enum的使用似乎不正确

如果你有一个枚举

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

您可以使用Day.MONDAYDay.SUNDAY

访问单个值

请查看java doc