Groovy-Collection只返回一个值
我有一个小的代码片段,它循环遍历一个节点并获取其所有属性。 如果我设置一个变量来获取属性值(除了它周围有一个奇怪的[]),我就可以实现这一点。但是我不想要多余的代码,所以我尝试在循环中设置多个属性,除了返回一个值之外,它不会在所有节点上循环 工作Groovy-Collection只返回一个值,groovy,Groovy,我有一个小的代码片段,它循环遍历一个节点并获取其所有属性。 如果我设置一个变量来获取属性值(除了它周围有一个奇怪的[]),我就可以实现这一点。但是我不想要多余的代码,所以我尝试在循环中设置多个属性,除了返回一个值之外,它不会在所有节点上循环 工作 String selectNodeLabel = null selectNodeLabel = JcrUtils.getChildNodes("links").collect{ it.getProperty("label").getString(
String selectNodeLabel = null
selectNodeLabel = JcrUtils.getChildNodes("links").collect{
it.getProperty("label").getString()
}
单个值
String selectNodeLabel = null
String selectNodeMeta = null
String selectNodeFooter= null
String topicNode = null
topicNode = JcrUtils.getChildNodes("links").collect{
selectNodeLabel = it.getProperty("label").getString()
selectNodeMeta = it.getProperty("meta").getString()
selectNodeFooter = it.getProperty("footer").getString()
}
谢谢你的帮助 试试看:
def nodeList = JcrUtils.getChildNodes("links").collect{
[ selectNodeLabel : it.getProperty("label").getString()
selectNodeMeta : it.getProperty("meta").getString()
selectNodeFooter : it.getProperty("footer").getString() ]
}
然后,nodeList
将是一个映射列表,因此您可以执行以下操作:
println nodeList*.selectNodeLabel
例如,要打印所有值,请选择NodeLabel
值
来解释代码中的问题。。。Collect创建闭包返回的元素列表。单值代码所做的是覆盖selectNode…
变量中的值,然后将topicNode
设置为JcrUtils.getChildNodes(“链接”)中每个元素的闭包返回的值
在这种情况下,topicNode
将包含一个it.getProperty(“footer”).getString()
(因为它是闭包中的最后一行查看和从来都不是一个坏主意。我可以得到关于否决票的解释吗?请,我很乐意修复任何问题。