1

我有一张带有名称/值对的地图:

def myMap = [
  "username"  : "myname",
  "age" : 30,
  "zipcode" : 10010
]

我有一个名为用户定义的类:

class User {
  def username;
  def age;
  def zipcode;
}

我想在 bean 上调用适当的设置器。有没有一种很好的常规方式来做到这一点?请注意,我可能在 myMap 中有额外的东西不会被设置。(图是表单参数值图)

我正在考虑使用 invokeMethod 但我假设有更好的方法。

4

1 回答 1

3

我发现了这个:Groovy - 将一个对象的属性绑定到另一个对象

我意识到我可以做到以下几点:

def prunedMap = [:]
myMap.each{
    if (User.metaClass.properties.find{p-> p.name == it.key}) {
        prunedMap.put(it.key, it.value)
    }
}

User user = new User(prunedMap)
于 2010-10-09T22:18:57.657 回答