Java 如何使用getName()的FileFilter的方法引用。endsWith()
我有一个FileFilter类型的lambda表达式,它为所有以.java结尾的文件返回true-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 lambdaFilter = (File pathname) -> pathname.getName().endsWith(".java");
我想对上面的表达式使用方法引用。我失败的尝试-
FileFilter lambdaFilter = File::getName.endsWith(".java");
上述情况是否可以使用方法参考?怎么做?您可以用这种方式进行链接
.map(File::getName).map(name -> name.endsWith(".java"))
但不是一次操作不,您不能在这里这样做。只要方法引用的目标是调用链的结果,您就知道不能直接使用方法引用,除非您能够以某种方式组合这些转换。