我有一个名称/值对的地图:
def myMap = [
"username" : "myname",
"age" : 30,
"zipcode" : 10010
]
我有一个名为User defined的类:
class User {
def username;
def age;
def zipcode;
}
我想在bean上调用适当的setter。有一个很好的groovy方式这样做?注意,我可能在myMap中有额外的东西,不会被设置。 (地图是表格参数值图)
我正在考虑使用invokeMethod,但我假设有更好的方法。
答案 0 :(得分:3)
我发现了这个:Groovy - bind properties from one object to another
我意识到我可以做到以下几点:
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)