2014-02-14 42 views
0

我有一個ObjectMap。我想將地圖中的所有名稱/值複製爲Object中的屬性值。從地圖複製名稱/值到對象屬性

因此,考慮:

def tony 
def map = [plenty: "66", none: "0", ...] 

我想託尼有屬性,大量的,沒有和他們有在map相應的值?

任何想法如何以常規的方式做到這一點?

+4

'tony = map'?我不明白這個問題......爲什麼不使用地圖? –

回答

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 
3

如果tony並不需要從一個特定的類對象,你可以使用Expando

m = [a:1, b:2, c:"foobar"] 
e = new Expando(m) 
assert e.c == "foobar"