Groovy 将名称/值从映射复制到对象属性
我有一个Groovy 将名称/值从映射复制到对象属性,groovy,Groovy,我有一个对象和一个地图。我想将映射中的所有名称/值复制为对象中的属性值 因此,考虑到: def tony def map = [plenty: "66", none: "0", ...] 我希望tony拥有大量和无属性,并希望它们在映射中具有相应的值 你知道如何用groovy的方式做这件事吗?你可以使用以下方法: class Foo { } def tony = new Foo() def map = [plenty: "66", none: "0"] map.each{ k, v
对象
和一个地图
。我想将映射中的所有名称/值复制为对象中的属性值
因此,考虑到:
def tony
def map = [plenty: "66", none: "0", ...]
我希望tony拥有大量和无属性,并希望它们在映射中具有相应的值
你知道如何用groovy的方式做这件事吗?你可以使用以下方法:
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
您可以使用以下内容:
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
如果tony
不需要来自特定的类对象,则可以使用:
如果tony
不需要来自特定的类对象,则可以使用:
tony=map
?我不明白这个问题。。。为什么不直接使用地图?tony=map
?我不明白这个问题。。。为什么不用地图呢?