在groovy中访问POJO属性的简便方法?

时间:2015-04-17 03:42:55

标签: reflection groovy pojo gstring

我是groovy的新手,仍在学习我的方式。有没有一种简单的方法可以使用点表示法在groovy中获取POJO属性值?例如,我有以下POJO:

public class MyPOJO {
        protected String name;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }

}

在groovy中,我想获取name字段的值,如下所示:

def doSomething (MyPOJO mpj) {
    def name = mpj.name
    // do something
}

以上不起作用。我知道我仍然可以使用java getter和setter,但我希望能够达到一个可以动态拉出pojo值的地步:

def doSomething (MyPOJO mpj, String propertyName) {
    def propertyValue = mpj.'${propertyName}'
    // do something
}

我试图避免使用java反射。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

Michal - 道歉......第一个代码片段正在运行,第二个代码片段没有。

stempler - 有效!这是在啃我。纠正的片段:

def doSomething (MyPOJO mpj, String propertyName) {
    def propertyValue = mpj."${propertyName}"
    // do something
}