java - 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() 适用于参数类型:() 值:[]
想不通。
解决方案
这与我获得 Path 的方式有关。我更改了以下内容:
Path directoryPath = resourcePath+directoryName as Path
对此:
Path directoryPath = Paths.get(resourcePath+directoryName)
我所拥有的仍然不太正确,但那个特定的错误现在已经消失了。
推荐阅读
- c# - 带有 Linq 表达式的 EF Core SQL 函数 LIKE 方法不适用于非字符串类型
- c - 返回一个大变量与使用参数中提供的指针设置它
- apache - Apache - 配置数百个类似站点,无需指定每个站点
- c - 使用 getc() 顺序读取文本文件并使用 fwrite() 写入 bin 文件不能按预期工作?
- java - 如何修复由于回收器适配器内的线程而导致的冻结活动?
- maven - 2019年发布私有jvm库在私有gradle/maven项目之间共享的实用方法
- rust - 我如何告诉 Rust 某些东西实现了一个 trait?
- ruby - 如何显示泛型类型
- python - 如何将熊猫系列添加到忽略索引的DataFrame?
- excel - 在图像控件的“loadpicture”指令中找不到文件