给List的元素添加约束
Add constraints to the elemets of List
有没有办法给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)
}
}
怎么做?
谢谢。
约束 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
})
}
以上示例验证列表中的每个元素的大小为三个或更多字符。
有没有办法给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)
}
}
怎么做?
谢谢。
约束 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
})
}
以上示例验证列表中的每个元素的大小为三个或更多字符。