我是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)。 –
謝謝,讓我試試看。 –