【发布时间】:2015-07-26 19:21:55
【问题描述】:
我是 Grails/Groovy 的新手,所以请耐心等待我尝试理解我在书中遇到的一段代码。
这是一个简单的相册域类:
class Album {
String artist
String title
List songs = []
List durations = []
static constraints = {
artist blank: false
title blank: false
songs minSize:1, validator:{ val, obj ->
if(val.size() != obj.durations.size())
return "songs.durations.not.equal.size"
}
}
我的问题来自代码的约束属性块。
在验证器约束中,作者使用了闭包。
但究竟什么是“val”和“obj”?他们将被赋予什么价值?
另外,还有一个额外的问题,“约束”是什么类型的?我不认为这是一张地图,因为它们在 Groovy 中被定义为 [ ]。从 Java 的角度来看,x = { .. } 是一个数组,但我不确定它在 Groovy 中是否相同。
感谢您的帮助!
【问题讨论】: