有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

当使用GroovyEventPlugin时,JavaGroovy不会将闭包转换为BiPredicate

我在以下groovy代码中遇到了问题(我第一次尝试没有显式的闭包参数类型):

  Files.find(path, 4, { Path target, BasicFileAttributes attr ->
    def file = target.fileName
    file.toString().endsWith(".xml") && !file.toString().startsWith("_")
  },
    new FileVisitOption[0]
  ).collect(Collectors.toList())

Groovy编译器(2.4.15)出现以下故障:

No signature of method: static java.nio.file.Files.find() is applicable for argument types: (sun.nio.fs.UnixPath, java.lang.Integer, upgrade_bundles$_items_closure3, [Ljava.nio.file.FileVisitOption;) values: [/home/kkrason/dev/tpc2/zerocracy/farm/src/test/resources/com/zerocracy/bundles/understands_bug_label, ...]
Possible solutions: find(), find(java.nio.file.Path, int, java.util.function.BiPredicate, [Ljava.nio.file.FileVisitOption;), findAll(), any(), find(groovy.lang.Closure), wait()

为什么编译器不将闭包转换为BiPredicate? 只有一个find方法,所以我无法理解为什么会有冲突

编辑:上面的代码是使用maven执行的:

组织。科德豪斯。格曼 groovy maven插件 2.1 升级包 过程测试资源 处决 编写 ${project.basedir}/upgrade\u bundle。棒极了

在项目依赖关系中,我有:

<dependency>
  <groupId>org.codehaus.groovy</groupId>
  <artifactId>groovy-all</artifactId>
  <version>2.4.15</version>
</dependency>

我试图将此依赖项添加到groovy maven插件中,但后来我得到:

[ERROR] Failed to execute goal org.codehaus.gmaven:groovy-maven-plugin:2.1:execute (upgrade-bundles) on project farm: Execution upgrade-bundles of goal org.codehaus.gmaven:groovy-maven-plugin:2.1:execute failed: A required class was missing while executing org.codehaus.gmaven:groovy-maven-plugin:2.1:execute: net/sf/saxon/event/Receiver
[ERROR] -----------------------------------------------------
[ERROR] realm =    plugin>org.codehaus.gmaven:groovy-maven-plugin:2.1
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/home/kkrason/.m2/repository/org/codehaus/gmaven/groovy-maven-plugin/2.1/groovy-maven-plugin-2.1.jar
[ERROR] urls[1] = file:/home/kkrason/.m2/repository/org/codehaus/groovy/groovy-all/2.4.15/groovy-all-2.4.15.jar
[ERROR] urls[2] = file:/home/kkrason/.m2/repository/org/sonatype/gossip/gossip-slf4j/1.8/gossip-slf4j-1.8.jar
[ERROR] urls[3] = file:/home/kkrason/.m2/repository/org/sonatype/gossip/gossip-core/1.8/gossip-core-1.8.jar
[ERROR] urls[4] = file:/home/kkrason/.m2/repository/org/sonatype/gossip/gossip-bootstrap/1.8/gossip-bootstrap-1.8.jar
[ERROR] urls[5] = file:/home/kkrason/.m2/repository/com/google/guava/guava/14.0.1/guava-14.0.1.jar
[ERROR] urls[6] = file:/home/kkrason/.m2/repository/com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.jar
[ERROR] urls[7] = file:/home/kkrason/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.16/plexus-interpolation-1.16.jar
[ERROR] urls[8] = file:/home/kkrason/.m2/repository/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar
[ERROR] urls[9] = file:/home/kkrason/.m2/repository/org/codehaus/gmaven/gmaven-adapter-api/2.1/gmaven-adapter-api-2.1.jar
[ERROR] urls[10] = file:/home/kkrason/.m2/repository/org/codehaus/gmaven/gmaven-adapter-impl/2.1/gmaven-adapter-impl-2.1.jar
[ERROR] urls[11] = file:/home/kkrason/.m2/repository/org/apache/ant/ant/1.8.4/ant-1.8.4.jar
[ERROR] urls[12] = file:/home/kkrason/.m2/repository/org/apache/ant/ant-launcher/1.8.4/ant-launcher-1.8.4.jar
[ERROR] urls[13] = file:/home/kkrason/.m2/repository/jline/jline/1.0/jline-1.0.jar
[ERROR] urls[14] = file:/home/kkrason/.m2/repository/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import  from realm ClassRealm[project>com.zerocracy:farm:0.30.7, parent: ClassRealm[maven.api, parent: null]]]

共 (0) 个答案