Aufruf einer Methode auf den Rückgabewert einer Methodenreferenz
Ich habe einen Stream von Dateien, die ich basierend auf der Endung des Dateinamens filtern möchte:
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));
}
Während das Lambda in der letzten Zeile nicht schlecht ist, dachte ich, ich könnte dort auch Methodenreferenzen verwenden, wie zum Beispiel:
.filter(File::getName.endsWith(ending));
Oder alternativ in Klammern. Dies schlägt jedoch mit @ feThe target type of this expression must be a functional interface
annst du erklären, warum das nicht funktionier