获取groovy中类的变量名
我使用Groovy Expando类来保存一些属性和方法。我希望防止多次意外设置同一属性,如下所示获取groovy中类的变量名,groovy,Groovy,我使用Groovy Expando类来保存一些属性和方法。我希望防止多次意外设置同一属性,如下所示 e = new Expando() e.var1 = 'abc' e.var1 = 'cde' 为此,我创建了一个扩展Expando的新类,如下所示 class MyExpando extends Expando { void setProperty(String property, Object newValue) { if(this.getProperty(property)){
e = new Expando()
e.var1 = 'abc'
e.var1 = 'cde'
为此,我创建了一个扩展Expando的新类,如下所示
class MyExpando extends Expando {
void setProperty(String property, Object newValue) {
if(this.getProperty(property)){
throw new RuntimeException("duplicate declaration of $property in ${this.class.name}")
} else {
super.setProperty(property, newValue)
}
}
}
这可以工作,因此它会抛出RuntimeException,但我希望错误消息类似于e中的重复属性var1。现在的问题是如何获得e不确定是否可以不使用任何黑客。您需要从
MyExpando
获取对MyExpando
类型字段的访问权限,因此MyExpando
应该知道其类型的所有字段。解决方案在groovy脚本和groovy类中也会有所不同。