如何通过 getName().endsWith() 使用 FileFilter 的方法参考

Posted

技术标签:

【中文标题】如何通过 getName().endsWith() 使用 FileFilter 的方法参考【英文标题】:How to use Method reference for FileFilter with getName().endsWith() 【发布时间】:2020-06-07 04:27:45 【问题描述】:

我有一个 FileFilter 类型的 lambda 表达式,它为所有以 .java 结尾的文件返回 true -

FileFilter lambdaFilter = (File pathname) -> pathname.getName().endsWith(".java");

我想对上述表达式使用方法参考。我的失败尝试 -

FileFilter lambdaFilter = File::getName.endsWith(".java");

是否可以在上述情况下使用方法参考?怎么样?

【问题讨论】:

不,你不能在这里这样做。只要方法引用的目标是调用链的结果,您就知道不能直接使用方法引用,除非您能以某种方式组合这些转换。 【参考方案1】:

你可以这样链接

.map(File::getName).map(name -> name.endsWith(".java"))

但不是一次操作

【讨论】:

以上是关于如何通过 getName().endsWith() 使用 FileFilter 的方法参考的主要内容,如果未能解决你的问题,请参考以下文章

控制抽象

File类递归

Excel最简洁解析

java中如何获取目录中的所有文件

java中判断上传文件类型

通过 AngularJS 访问时 principal.getName() 返回 null