我有一个班级:
class PersonCommand implements Validateable {
String firstName
String lastName
static constraints = {
firstName nullable: true
lastName nullable: true
}
}
我有一个需要验证的PersonCommand类型列表。我想迭代每个元素并检查firstName和lastName是否都为null。有没有办法在没有明确检查这些属性的情况下执行此操作?我想做点什么:
for(PersonCommand person in people) {
if(areAllMapValuesNull(person.properties)) {
person.validate()
} else {
...
但是person.properties除了firstName和lastName之外还添加了其他属性,因为它是Validateable。我没有在areAllMapValuesNull()函数上寻找帮助,只是在获取值firstName和lastName而不对代码进行硬编码时。
答案 0 :(得分:1)
您可以尝试此代码,我没有测试,是您可能的解决方案的草稿,对吧。
def p = new DefaultGrailsDomainClass(PersonCommand.class)
for(PersonCommand person in people) {
def prop = person.properties.entrySet().findAll{ it.key in p.persistantProperties }
if(areAllMapValuesNull(prop)) {
person.validate()
} else {}
干杯。