我有一个列表def vrs=["6.0","6.1","6.1.0"]
(版本),我得到一个函数中的地图,其值为def test=[version:6.1 HotFix11]
。检查一个列表的值包含在一个字符串中?
如何检查test
的version
值是否与列表vrs
匹配?
我想这vrs.each{ver-> println test.version.contains(ver)}
但它给Exception in thread "main" java.lang.StackOverflowError
更新
原来我的代码有什么问题。我想在一个小的Groovy脚本&它工作的测试用例,所以..
下面是完整的代码
private Map params
private def root
private def nineBelow
XmlHandler(String xml)
{
nineBelow=["6.0","6.1","6.1.0"]
params=[:]
root=new XmlParser().parseText(xml)
}
def getParams()
{
if(root.product.version.size()>0)
{
params.version=root.product.version.text()
}
/*nineBelow.each {
println params.version //even this throws java.lang.StackOverflowError
//println "$it , ${params.version}"
//println ver.getClass()+", "+params.version.getClass()
}*/
println nineBelow.each{ver-> println params.version.contains(ver)}
/*I need to check whether `params.version` matches with `nineBelow` list, so i'll check for condition here*/
params
}
这就要求getParams()
static main(args) {
String fileContents = new File('E://Projects/agent6.1.xml').text
XmlHandler xm=new XmlHandler(fileContents)
def params=xm.getParams()
println params
}
更新
另一类即使println nineBelow.each { println params.version}
给我Exception in thread "main" java.lang.StackOverflowError
更多更新
它下面的代码
def ver=params.version
println nineBelow.each { println ver.contains(it) }
这里有什么问题后才工作?
我试过一个例子,它的工作原理也很好。但无论如何,问题得到解决。看到我的问题更多更新 – abi1964 2012-04-27 08:38:10
你能解决另一个[问题在这里](http://stackoverflow.com/questions/10346903/how-to-use-a-groovy-class-in-a-jsp-page)? – abi1964 2012-04-27 10:08:32
我正在使用错误的jar而不是'groovy-all-1.8.6.jar'我使用的是'groovy-1.8.6.jar'它解决了我的问题,另一个问题。谢谢 – abi1964 2012-04-27 10:58:38