我使用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)){
throw new RuntimeException("duplicate declaration of $property in ${this.class.name}")
} else {
super.setProperty(property, newValue)
}
}
}
这样可以抛出RuntimeException,但我希望错误消息类似于 e中的重复属性var1 。现在的问题是如何获得 e