Grails / Groovy - Domain Object - Map of its Properties

前端 未结 3 2058
无人及你
无人及你 2021-01-18 06:18

How can I get a map of the key/values of only the user-defined properties on one of my domain objects?

Problem is if I do this myself, I get my properties plus class

3条回答
  •  难免孤独
    2021-01-18 06:43

    This is an old question, but I just ran across this requirement and found another solution that is worth answering here for others who come across this thread. I have put together an example based on that thread:

    Sample Bean

    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" ]
            }
        }
    }
    

    Test Class

    class Test {
    
        static main(args) {
            // test bean properties
            SampleBean sb = new SampleBean(1,'john','doe','jd@gmail.com')
    
            println sb.asMap()
        }
    
    }
    

    The SampleBean I put a variety of fields to show that it works, this is the output of the println:

    [id:1, firstName:john, lastName:doe, email:jd@gmail.com]
    

提交回复
热议问题