2013-06-04 35 views
5

Khi tôi chạy đoạn mã sau vào giao diện điều khiển (groovy 2.1.3):Groovy (GPars) và MissingMethodException khi gọi eachParallel()

strings = [ "butter", "bread", "dragon", "table" ] 
strings.eachParallel{println "$it0"} 

tôi nhận được:

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

Bất cứ ai cũng có thể nói tôi làm gì sai?

Trả lời

8

Tôi nghĩ bạn đang thiếu thiết lập. Hãy thử

@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 } 
} 
+0

Đã chỉnh sửa trong trường hợp, phụ thuộc chưa được giải quyết. – dmahapatro

+0

Cảm ơn Michael. Bạn đã đưa tôi đi đúng hướng mặc dù tôi không thể chạy Grab khi tôi đứng sau một proxy. Nhìn vào câu trả lời của bạn, tôi đã tìm ra rằng sự phụ thuộc của gpars trong tệp pom.xml của grooyy-all được đặt thành optional = true. Và điều này gây ra sự phụ thuộc của gpar không được bao gồm theo mặc định. Vì vậy, thêm phụ thuộc gpar một cách rõ ràng để pom của tôi cố định vấn đề đó cho tôi. – Armin

Các vấn đề liên quan