2012-09-11 32 views
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 
} 

但是我想在這裏做的是枚舉分配給響應{}部分屬性選項..

我如何正確地做到這一點? 請幫忙嗎? 謝謝。

回答

7

枚舉是預定義的對象,就會有一個私人的構造函數,不能創建新的一個新的實例。你只需要調用Option.OPTION_1;

Response{ 
option = Option.OPTION_1; 
} 
+0

@ Rp-:你的評論說不使用新的。但代碼已經。我刪除了'新'。希望這很好。 – Jayan

+0

是的..複製了OP的問題的代碼,感謝編輯 –

4

你只需要引用它爲Options.OPTION_1有沒有新的枚舉。

Option option = Options.OPTION_1; 
4

你不能實例化一個枚舉對象,那裏的唯一實例是由你在枚舉類中定義的。

所以,正確的做法是:

Response { 
    option = Options.OPTION_1; 
} 
1

並不知道這個Grails的部分,但你的enum使用似乎是不正確

如果你有一個枚舉作爲

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

您可以訪問使用Day.MONDAY個人價值, Day.SUNDAY

請檢查java doc

+0

我認爲grails和java在聲明枚舉方面做同樣的事情,因爲grails基於java .. – chemilleX3

2

您不能創建一個枚舉的新實例。沒有必要,因爲它只能保存固定數量的值。所以option = new Option.OPTION_1("Option_1")會做。