Это старый вопрос, но я просто наткнулся на это требование и нашел другое решение , на которое стоит ответить здесь для других, кто сталкивался с этой веткой. Я собрал пример, основанный на этой теме:
Образец бобов
class SampleBean {
long id
private String firstName
String lastName
def email
Map asMap() {
this.class.declaredFields.findAll { !it.synthetic }.collectEntries {
[ (it.name):this."$it.name" ]
}
}
}
Тестовый класс
class Test {
static main(args) {
// test bean properties
SampleBean sb = new SampleBean(1,'john','doe','jd@gmail.com')
println sb.asMap()
}
}
SampleBean
Я поместил множество полей, чтобы показать, что он работает, это вывод println:
[id:1, firstName:john, lastName:doe, email:jd@gmail.com]