很长一段时间以来,我一直在导航地图结构。然而,出于某种原因,这个问题的根源却让我无法理解。我也尝试过括号表示法,没有运气。
为什么最终输出(null)不返回"[serverinfo:listenPort:19001]“
如果我用简单的‘服务’替换‘$instanceName’的两个实例,它就能工作。
String instanceName = "Services"
Map serverNode = [
instances:[
"$instanceName":[
serverinfo:[
listenPort:19001
]
]
]
]
println "$instanceName"
println serverNode.instances
println serverNode.instances."$instanceName"
//output
Services
[Services:[serverinfo:[listenPort:19001]]]
null发布于 2016-02-19 14:32:20
"$instanceName"的类型是GStringImpl,而不是String。这是一个常见的错误(很难找到!)
def serverNode = [
instances:[
("$instanceName" as String):[
serverinfo:[
listenPort:19001
]
]
]
]正如@tim_yates在注释中所述,如果插入的字符串与本例一样简单(即"${ property }"),则可以使用(property)语法: Groovy将属性值作为键,而不是单词"property“
https://stackoverflow.com/questions/35507401
复制相似问题