我有一个枚举。一个字符串包含枚举的名称。我想使用字符串访问枚举。像这样的东西。但这不起作用:(
public enum Level { HIGH, MEDIUM, LOW }
def x = "Level"
println "$x".values();
答案 0 :(得分:1)
您可以使用Class.forName
方法执行此操作。例如
public enum Level {
HIGH,
MEDIUM,
LOW
}
def clazz = Class.forName("Level")
println clazz.values()
请记住,您应该使用FULLY QUALIFIED CLASSNAME。有关详细信息http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#forName(java.lang.String)
答案 1 :(得分:0)
你必须这样做:
public enum Level { HIGH, MEDIUM, LOW }
def x = this.class.classLoader.loadClass('Level', true)
println x.values()
这是另一种方式:
public enum Level { HIGH, MEDIUM, LOW }
def x = "Level"
println Eval.me("${x}").values()