2015-11-02 175 views
0

當我在java 8 Stream s上使用collect方法時,Groovy正在拋出一個奇怪的錯誤。這是我的代碼:Groovy gdk命名空間衝突

someStream.collect(Collectors.toList()) 

這是錯誤:

Caught: groovy.lang.MissingMethodException: No signature of method: java.util.stream.LongPipeline$8.collect() is applicable for argument types: (java.util.stream.Collectors$CollectorImpl) values: [[email protected]] 
Possible solutions: collect(), collect(groovy.lang.Closure), collect(java.util.Collection, groovy.lang.Closure), collect(java.util.function.Supplier, java.util.function.ObjLongConsumer, java.util.function.BiConsumer), close(), count() 
groovy.lang.MissingMethodException: No signature of method: java.util.stream.LongPipeline$8.collect() is applicable for argument types: (java.util.stream.Collectors$CollectorImpl) values: [[email protected]] 
Possible solutions: collect(), collect(groovy.lang.Closure), collect(java.util.Collection, groovy.lang.Closure), collect(java.util.function.Supplier, java.util.function.ObjLongConsumer, java.util.function.BiConsumer), close(), count() 

我如何避免這種情況?

回答

1

您使用的是什麼版本的Java 8我看不到LongPipeline在?

的唯一參考LongPipeline我能找到的,只有以下收集方法:

collect(Supplier<R> resultFactory, 
     ObjLongConsumer<R> accumulator, 
     BiConsumer<R, R> combiner) 

,你可以在異常看你是被顯示:

collect(java.util.function.Supplier, java.util.function.ObjLongConsumer, java.util.function.BiConsumer) 

所以即便在Java中,你將無法致電

someStream.collect(Collectors.toList()) 
+0

呃..那就解釋一下吧。現在我怎麼做到這一點工作....感謝您的答案! –