如何通过 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 的方法参考的主要内容,如果未能解决你的问题,请参考以下文章