通常,对于Grails域或命令类,您声明了约束,并且框架添加了一个validate()
方法,用于检查每个约束是否对当前实例有效,例如,自定义Grails验证
class Adult {
String name
Integer age
void preValidate() {
// Implementation omitted
}
static constraints = {
name(blank: false)
age(min: 18)
}
}
def p = new Person(name: 'bob', age: 21)
p.validate()
在我的情况下,我想确保preValidate
始终在类验证之前执行。我可以通过添加一个方法
def customValidate() {
preValidate()
validate()
}
但后来大家谁使用这个类需要记住实现这个调用customValidate
而不是validate
。我不能做到这一点无论
def validate() {
preValidate()
super.validate()
}
因为validate
不是父类的方法(它是由元编程添加)。有另一种方法来实现我的目标吗?