0

我在 Grails 项目的 src/java 上有一个枚举文件。

这个枚举在代码上定义了它的值,我可以动态更改这个值吗?

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 回答