我是Java 8(Lambda Expression)的新手。下面的代码打印变量“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());
我错过了什么?
答案 0 :(得分:6)
删除括号:
File[] names = file.listFiles(File::isDirectory);
如果要引用特定类型对象的实例方法,则使用的语法为:
ContainingType::methodName
更详细地描述了here。