0

Grails プロジェクトの src/java に enum ファイルがあります。

この列挙型にはコードで値が定義されていますが、この値を動的に変更できますか?

public enum Status
{
    value_one, value_two, value_three;

    public String getOtherString()
    {
        switch (this)
        {
        case value_one:
            return "value one";
        case value_two:
            return "value two";
        case value_three:
            return "value three";
        default:
            return "problem";
        }
    }

    @Override
    public String toString()
    {
        switch (this)
        {
        case value_one:
            return "VALUE 1";
        case value_two:
            return "VALUE 2";
        case value_three:
            return "VALUE 3";
        default:
            return "problem happens";
        }
    }
}
4

2 に答える 2

2

使用する前に、 metaClassで拡張できます。たとえば、次のように追加しBootStrap.init()ます。

Status.metaClass.getValueOne = {
   Status val = delegate
   switch (val) {
        case Status.value_one:
        // read from database
   }
}
于 2012-08-07T14:29:45.200 に答える
0

サービスを利用する方法を見つけました。

列挙型を .groovy ファイルに変換し、サービス メソッドを使用して値を返しました。

すべての作品!

于 2012-08-09T13:22:35.080 に答える