我正在使用下面的代码来遍历目录并获取第一个文件。我无法解决两个声纳皮棉问题。请帮助。
List<String> result = walk.filter(Files::isRegularFile).map(x -> x.toString()).collect(Collectors.toList());
Files.exists方法在JDK 8中的性能明显较差,并且当检查文件时,会大大降低应用程序的速度实际上不存在。
Files.notExists,Files.isDirectory和Files.isRegularFile。
请注意,当项目的sonar.java.source不是8。
您的项目很可能依赖JDK / JRE 8。如果您深入研究the OpenJDK issues,您会发现在Linux上该问题已部分解决,但在Windows上未解决。
关于第二期:
map(x -> x.toString())
只需将其替换为方法参考:
map(Path::toString)
所以最终要与Sonar兼容,它给出了:
//FIXME use Files::isRegularFile when update with Java>8
List<String> result = walk.filter(p -> p.toFile().exists())
.map(Path::toString)
.collect(Collectors.toList());