0

我是 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 反射。谢谢您的帮助!

4

1 回答 1

0

Michal - 抱歉......第一个代码片段有效,第二个没有。

模板 - 这工作!这让我很痛苦。更正的片段:

def doSomething (MyPOJO mpj, String propertyName) {
    def propertyValue = mpj."${propertyName}"
    // do something
}
于 2015-04-18T02:11:18.577 回答