我有Object
和Map
。我想将Map中的所有名称/值复制为Object
中的属性值。
所以,考虑一下:
def tony
def map = [plenty: "66", none: "0", ...]
我希望tony拥有属性,充足且没有属性,并且他们在map
中拥有相应的值?
知道如何以时髦的方式做到这一点吗?
答案 0 :(得分:3)
您可以使用以下内容:
class Foo { }
def tony = new Foo()
def map = [plenty: "66", none: "0"]
map.each{ k, v -> tony.metaClass.setProperty k, v }
tony.properties.each { println "$it.key -> $it.value" }
<强>输出:强>
none -> 0
class -> class Foo
plenty -> 66
答案 1 :(得分:3)
如果tony
不需要来自特定的类对象,则可以使用Expando
:
m = [a:1, b:2, c:"foobar"]
e = new Expando(m)
assert e.c == "foobar"