在Groovy中,可以使用字符串插值从带有点符号的嵌套映射的属性中获取值。下面是一个示例代码:
def properties = [
name: 'John',
address: [
street: '123 Main St',
city: 'New York',
country: 'USA'
]
]
def propertyName = 'address.city'
def propertyValue = evaluateProperty(properties, propertyName)
println "The value of ${propertyName} is ${propertyValue}"
def evaluateProperty(properties, propertyName) {
def propertyNames = propertyName.split('\\.')
def value = properties
propertyNames.each { name ->
value = value[name]
}
return value
}
在上面的示例中,我们定义了一个嵌套映射的属性properties
,其中包含了一个address
属性,它又包含了street
、city
和country
属性。
然后,我们定义了一个字符串变量propertyName
,它的值是address.city
,表示我们要获取address
属性中的city
属性的值。
接下来,我们调用evaluateProperty
方法,传入properties
和propertyName
作为参数,该方法会根据点符号分割propertyName
,然后逐级获取嵌套属性的值。
最后,我们使用字符串插值将属性名和属性值打印出来。
运行上述代码,输出结果为:
The value of address.city is New York
在这个例子中,我们使用了Groovy的字符串插值和嵌套映射的属性访问方式,通过这种方式可以方便地从带有点符号的嵌套映射的属性中获取值。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云