Java 如何使用getName()的FileFilter的方法引用。endsWith()

Java 如何使用getName()的FileFilter的方法引用。endsWith(),java,lambda,java-8,filefilter,Java,Lambda,Java 8,Filefilter,我有一个FileFilter类型的lambda表达式,它为所有以.java结尾的文件返回true- FileFilter lambdaFilter = (File pathname) -> pathname.getName().endsWith(".java"); 我想对上面的表达式使用方法引用。我失败的尝试- FileFilter lambdaFilter = File::getName.endsWith(".java"); 上述情况是否可以使用方法参考?怎么做?您可以用这种方式进行

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

FileFilter lambdaFilter = (File pathname) -> pathname.getName().endsWith(".java");
我想对上面的表达式使用方法引用。我失败的尝试-

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

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

您可以用这种方式进行链接

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

但不是一次操作

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