我是Java 8(Lambda Expression)的新手。以下代码将打印由变量“file”指示的路径上的所有目录。Java 8方法表达式给出编译错误
File file = new File("/vssexclude/Test/workspace/Test");
File[] names = file.listFiles(fileName -> fileName.isDirectory());
for (File name : names) {
System.out.println(name.toString());
}
但是,当我尝试替换方法表达lambda表达式,日食是给编译错误:
File[] names = file.listFiles(File::isDirectory());
我缺少什么?
我还会补充一点,虽然功能可能相同,但您应该真正从Java 7开始使用新的'Path'类而不是'File'。大多数情况下它的工作原理是相同的,但它更适合目录探测,名称连接,硬链接和软链接等。请参见['Files.newDirectoryStream()'](http://docs.oracle.com/javase/7/docs /api/java/nio/file/Files.html#newDirectoryStream%28java.nio.file.Path,%20java.nio.file.DirectoryStream.Filter%29)。 –
谢谢,让我试试看。 –