Вы можете сделать следующее:
class Domain {
String lastName
String firstName
int age
}
class Command {
String lastName
int age
}
def domain = new Domain(lastName:'last', firstName:'first', age:33)
def command = new Command()
command.properties.findAll{ !["metaClass","class"].contains(it.key)}.each { k,v ->
command[k] = domain[k]
}
assert 33 == command.age
assert 'last' == command.lastName
Проблема с .properties заключается в том, что он включает в себя 'class' и 'metaClass'. Задавать этим двум плохую идею, чтобы они отфильтровывались.