Java 8 Method表达式给出了编译错误

Arn*_*was 3 java lambda java-8

我是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());
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试用方法表达式替换lambda表达式时,eclipse会给出编译错误:

File[] names = file.listFiles(File::isDirectory());
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

Ale*_* C. 6

删除括号:

File[] names = file.listFiles(File::isDirectory);
Run Code Online (Sandbox Code Playgroud)

如果要引用特定类型对象的实例方法,则使用的语法是:

ContainingType::methodName
Run Code Online (Sandbox Code Playgroud)

这里将更详细地描述.