是否有任何可能的方法为List的元素添加约束?例如,我有一个接受List的命令,我希望在这个元素上添加约束,例如大小。
class SongCommand {
String title
List<String> couplet
List<String> chorus
Boolean isChorus
Boolean isChorusRepeat
static constraints = {
title(blank: false, maxSize: 6)
isChorus(blank: true)
}
}
怎么做?
谢谢。
答案 0 :(得分:2)
约束size
将用于此目的。查看documentation以获取完整的详细信息,但您的示例是:
static constraints = {
...
chours(size:0..3) // example of minimum of 0 maximum of 3
...
}
以上将限制元素的数量(最小和最大),但是如果要验证列表的内容,例如您需要实现自定义validator所需的每个元素。例如:
static constraints = {
chours(validator: { val ->
boolean isValid = true
val.each {
if (it.size() < 3) isValid = false
}
return isValid
})
}
上面的示例验证列表中的每个元素的大小是三个字符或更多。