【问题标题】:Groovy gdk namespace collisionGroovy gdk 命名空间冲突
【发布时间】:2015-11-02 23:04:41
【问题描述】:

当我在 java 8 Streams 上使用 collect 方法时,Groovy 抛出了一个奇怪的错误。这是我的代码:

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: [java.util.stream.Collectors$CollectorImpl@e41621]
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: [java.util.stream.Collectors$CollectorImpl@e41621]
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()

如何防止这种情况发生?

【问题讨论】:

    标签: java groovy java-stream


    【解决方案1】:

    您使用的是什么版本的 Java 8 我在 the javadocs 中看不到 LongPipeline

    我能找到的唯一对LongPipeline的引用,只有以下collect方法:

    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())
    

    【讨论】:

    • 嗯..这解释了它。现在我到底是如何让它工作的......谢谢你的回答!
    猜你喜欢
    • 2010-09-20
    • 1970-01-01
    • 2013-01-26
    • 2010-11-15
    • 2012-12-18
    • 2012-02-06
    • 1970-01-01
    相关资源
    最近更新 更多