我在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";
}
}
}
答案 0 :(得分:2)
在使用之前,您可以使用metaClass进行扩展。例如,添加到BootStrap.init()
:
Status.metaClass.getValueOne = {
Status val = delegate
switch (val) {
case Status.value_one:
// read from database
}
}
答案 1 :(得分:0)
我找到了使用服务的方法。
我在.groovy文件中转换枚举并使用服务方法返回值。
一切正常!