【发布时间】:2014-01-18 14:03:39
【问题描述】:
我是 Java 8(Lambda 表达式)的新手。下面这段代码打印了变量“file”所指示的路径下的所有目录。
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 表达式时,eclipse 给出了编译错误:
File[] names = file.listFiles(File::isDirectory());
我错过了什么?
【问题讨论】:
-
我还要补充一点,虽然功能可能相同,但您应该真正使用新的
Path类,而不是从 Java 7 开始的File。大多数情况下,它的工作原理相同,但更适合目录探测、名称连接、硬链接和软链接等。请参阅Files.newDirectoryStream()。 -
谢谢,我试试看。