gpt4 book ai didi

java - 为什么 File::isDirectory 作为 FileFilter 工作正常?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:05:43 26 4
gpt4 key购买 nike

为什么 File::isDirectory 在下面的示例中作为 FileFilter 工作正常?

File[] files = new File(".").listFiles(File::isDirectory);

listFiles 方法需要一个 FileFilter 作为参数

public File[] listFiles(FileFilter filter) {
...
}

FileFilter 是一个函数式接口(interface),它有一个accept方法和一个 File 参数

boolean accept(File pathname);

并且 File 类中的 isDirectory 方法没有参数

public boolean isDirectory() {
...
}

最佳答案

为了使事情更清楚,方法引用 File::isDirectory 等效于以下 lambda:

file -> file.isDirectory()

如您所见,我们传递了一个 File 参数,然后对其调用 isDirectory 并返回 boolean因此满足FileFilter接口(interface)中的SAM。

关于java - 为什么 File::isDirectory 作为 FileFilter 工作正常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50877325/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com