Groovy 如何将属性指定给嵌套对象?

Groovy 如何将属性指定给嵌套对象?,groovy,Groovy,我有一个过滤器循环,用于将列表项与嵌套对象项进行比较: 处理文章成员: processArticlesNumbers = ["1", "2", "3"] [Business_Unit1: [Supplier1: ["2", "5", "8"], Supplier2: ["2", "5", "8"] ], Business_Unit2: [Supplier3: ["2", "5", "8"], S

我有一个过滤器循环,用于将列表项与嵌套对象项进行比较:

处理文章成员

processArticlesNumbers = ["1", "2", "3"]
[Business_Unit1: 
    [Supplier1: 
        ["2", "5", "8"],
    Supplier2: 
        ["2", "5", "8"]
    ],
 Business_Unit2: 
    [Supplier3: 
        ["2", "5", "8"],
    Supplier4: 
        ["2", "5", "8"]
    ],
]
文章地图

processArticlesNumbers = ["1", "2", "3"]
[Business_Unit1: 
    [Supplier1: 
        ["2", "5", "8"],
    Supplier2: 
        ["2", "5", "8"]
    ],
 Business_Unit2: 
    [Supplier3: 
        ["2", "5", "8"],
    Supplier4: 
        ["2", "5", "8"]
    ],
]
我想筛选出与具有相同结构的新对象不匹配的值并分配这些值(
expiredAndNewArticlesMap

目前,我收到以下错误:

expiredAndNewArticlesMap.$({->…})。$({->…})”是一个方法调用 表达式,但它应该是变量表达式


如何将值分配给嵌套对象?

要从字符串名称访问任意属性,需要使用GString,如:

expiredAndNewArticlesMap."${businessUnit}"

您还可以通过按键以更清晰的方式访问地图:

expiredAndNewArticlesMap[businessUnit]
如果要从包含字符串的变量中指定特定键,则需要将其括在括号中:

expiredAndNewArticlesMap."${businessUnit}" = [(supplier): []]

对gstring使用属性访问有点复杂。只需使用
[x]