我正在尝试将一组命名参数传递给方法。 我可以将参数传递给函数,但不传递给方法。 当我运行此代码时:
class Tester {
def exectute(java.util.LinkedHashMap tests) {
println("Tests are ${tests}")
}
}
def funct(def test)
{
println "Test is ${test}"
}
def arg=[:]
arg['CASE 1'] = [ script: "test.sh", log: false]
def testclass = new Tester()
println "${arg}"
funct(arg)
testclass.execute(arg)
我得到以下回复:
[CASE 1:[script:test.sh, log:false]]
Test is [CASE 1:[script:test.sh, log:false]]
Exception thrown
groovy.lang.MissingMethodException: No signature of method: Tester.execute()
is applicable for argument types: (java.util.LinkedHashMap) values:
[[CASE 1:[script:test.sh, log:false]]]
Possible solutions: exectute(java.util.LinkedHashMap)
at ConsoleScript17.run(ConsoleScript17:21)
我有什么建议可以解决这个问题吗?
我可能错过了一些微不足道的东西,因为我在groovy和java方面缺乏经验。