Groovy (GPars)和调用eachParallel()时出现的MissingMethodException

7
当我在控制台(groovy 2.1.3)中运行以下代码时:
strings =  [ "butter", "bread", "dragon", "table" ]
strings.eachParallel{println "$it0"}

我收到了:

groovy.lang.MissingMethodException: No signature of method: java.util.ArrayList.eachParallel() is applicable for argument types: (ConsoleScript40$_run_closure1) values: [ConsoleScript40$_run_closure1@a826f5]

有人能告诉我哪里做错了吗?

1个回答

11

我认为您错过了设置步骤,请尝试:

@Grab(group='org.codehaus.gpars', module='gpars', version='1.0.0')
import groovyx.gpars.GParsPool

GParsPool.withPool {
    def strings =  [ "butter", "bread", "dragon", "table" ]
    strings.eachParallel { println it }
}

谢谢你的帮助,Michael。尽管我无法在代理后运行Grab,但你确实让我找到了正确的方向。看了你的答案后,我发现groovy-all的pom.xml中gpars依赖项设置为optional=true。这导致默认情况下不包括gpar依赖项。因此,将gpar依赖项显式添加到我的pom中解决了这个问题。 - Armin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接