私はリスト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
アップデートを提供します。私はそれが動作する小さなグルーヴィースクリプト&でテストケースを試してみましたので、ここでは...
は完全なコード
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
別の[質問はこちら](http://stackoverflow.com/questions/10346903/how-to-use-a-groovy-class-in-a-jsp-page)を解決できますか? – abi1964
私は 'groovy-all-1.8.6.jar'の代わりに間違ったjarを使っていました。私は' groovy-1.8.6.jar'を使っていました。他の質問のために私の問題を解決しました。ありがとう – abi1964