Chame um método no valor de retorno de uma referência de método
Eu tenho um fluxo de arquivos que quero filtrar com base no final do nome do arquivo:
public Stream<File> getFiles(String ending) throws IOException {
return Files.walk(this.path)
.filter(Files::isRegularFile)
.map(Path::toFile)
.filter(file -> file.getName().endsWith(ending));
}
Enquanto o lambda na última linha não é ruim, eu pensei que poderia usar referências de método lá também, assim:
.filter(File::getName.endsWith(ending));
Ou, alternativamente, entre parênteses. No entanto, isso falha comThe target type of this expression must be a functional interface
Você pode explicar por que isso não funciona?