给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
  })
}

以上示例验证列表中的每个元素的大小为三个或更多字符。