假设我有这个枚举:
public enum MyEnum {
AUSTRALIA_SYDNEY ("Australia/Sydney"),
AUSTRALIA_ADELAIDE ("Australia/Adelaide"),
private String name
private Timezone(String name){
this.name = name
}
public String value() {
name
}
String toString() {
name
}
}
有没有办法让我使用它的值/名称来获取枚举?
现在,我正在尝试这样做,但它不起作用:
MyEnum.valueOf("Australia/Sydney")
我从数据库得到的是一个字符串(在这种情况下:“澳大利亚/悉尼”),而不是值,不幸的是,我不能改变它返回的类型,因为它是一个旧的
系统,我只是连接到这个由多个应用程序共享的数据库。无论如何围绕这个?
最佳答案
将以下内容添加到您的枚举中:
static MyEnum valueOfName( String name ) {
values().find { it.name == name }
}
然后,您可以调用:
MyEnum.valueOfName( "Australia/Adelaide" )
关于Grails 字符串枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18823595/