0

私はクラスを持っています:

class PersonCommand implements Validateable {
    String firstName
    String lastName

    static constraints = {
        firstName nullable: true
        lastName nullable: true
    }
}

検証する必要がある PersonCommand タイプの List があります。各要素を反復処理して、firstName と lastName の両方が null かどうかを確認したいと思います。これらのプロパティを明示的にチェックせずにこれを行う方法はありますか? 私は次のようなことをしたいと思います:

for(PersonCommand person in people) {
    if(areAllMapValuesNull(person.properties)) {
        person.validate()
    } else {
        ...

しかし、person.properties には Validateable であるため、firstName と lastName 以外のプロパティが追加されています。私は areAllMapValuesNull() 関数に関するヘルプを探しているのではなく、チェックをハードコーディングせずに firstName と lastName の値を取得する場合のみです。

4

1 に答える 1

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 {}

乾杯。

于 2016-05-24T18:13:23.893 に答える