通常对于 Grails 域或命令类,您声明您的约束并且框架添加一个validate()
方法来检查这些约束中的每一个是否对当前实例有效,例如
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
不是父类的方法(它是通过元编程添加的)。还有其他方法可以实现我的目标吗?