首页 > 解决方案 > groovy MissingMethodException:没有方法签名:java.lang.String.getFileSystem()

问题描述

我正在尝试映射目录中的所有 xml 文件,如下所示:

static Map<String, String> mapFilesInDirectory(Path dir) throws IOException {
    Map<String, String> map = Files.find(dir, 0, { path, basicFileAttributes -> basicFileAttributes.isRegularFile() && path.endsWith(".xml") })
            .collect(Collectors.toMap({path -> path.getFileName()}, { path -> ResourceUtils.getResourceAsString(path) }
            ))
    return map
}

我这样调用该方法:

def static importContentFromDirectory(String directoryName, String resourcePath, String importConfigurationFile = null) {
    Path directoryPath = resourcePath+directoryName as Path
    Map<String, String> map = mapFilesInDirectory(directoryPath)

    importContentWithSeveralFiles(directoryName, map, importConfigurationFile)
}

当我调用 mapFilesinDirectory 时出现此错误:groovy.lang.MissingMethodException:没有方法签名:java.lang.String.getFileSystem() 适用于参数类型:() 值:[]

想不通。

标签: javagroovy

解决方案


这与我获得 Path 的方式有关。我更改了以下内容:

Path directoryPath = resourcePath+directoryName as Path

对此:

Path directoryPath = Paths.get(resourcePath+directoryName)

我所拥有的仍然不太正确,但那个特定的错误现在已经消失了。


推荐阅读