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.MONDAYDay.SUNDAYなどを使用して個々の値にアクセスできます。

Java ドキュメントを確認してください。

于 2012-09-11T07:35:54.900 に答える