grails - 为什么 map.collectEntries() 不适用于此数据 [[Name :sub, Value:23234]] - Groovy

标签 grails groovy spock groovy-console

为什么这样有效:

def m =  [[1,11], [2,22], [3,33]]
println(m.collectEntries())

输出:[1:11, 2:22, 3:33]
但这不起作用:
def m = [[Name:sub, Value:23234], [Name:zoneinfo, Value:Europe/London]]

println(m.collectEntries())

输出:groovy.lang.MissingPropertyException: No such property: sub for class
我想处理该映射,以便获得如下键值对列表:

[“名称:子”:“值:23234”,“名称:zoneinfo”:“值:欧洲/伦敦”]

在哪里 Name:sub是关键和Value:23234是值(value)。

引用 https://stackoverflow.com/a/34899177/9992516

最佳答案

在第二个例子中 subzoneinfo被读取为变量名,而不是字符串,您需要引用它们。

def m = [[Name:'sub', Value:23234], [Name:'zoneinfo', Value:'Europe/London']]
println m.collectEntries{ ["Name:${it.Name}", "Value:${it.Value}"] }

关于grails - 为什么 map.collectEntries() 不适用于此数据 [[Name :sub, Value:23234]] - Groovy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51803968/

相关文章:

grails - 如何为Grails 2.2.4设置Set Vm Arguments

grails - 如何配置 db-reverse-engineer 插件

arrays - Elasticsearch groovy 脚本检查数组中的参数包含

java - Grails Spock - 从服务抛出异常 UndeclaredThrowableException

unit-testing - Groovy/模拟 SQL

groovy - Spock:PollingConditions 期望最终抛出异常

hibernate - HQL:如果有时为空,如何筛选属性

batch-file - 如何使用jenkins在命令提示符中运行Grails

grails - Slf4j 注释可以在 Grails 中工作吗?

groovy - 使用Spock展开的所有可能的参数排列