Lambda-Ausdruck: Pendant zu ohne Lambda

oraclin25

Erfahrenes Mitglied
#1
Hallo zusammen,

ich habe einen schönen Lambda-Ausdruck in Java, den ich in einen Nicht-Lambda-Ausdruck bringen möchte:

Code:
Files.list(verzeichnis).filter(Files::isRegularFile);
Meine Frage wäre:
wie kann ich diesen Lambda-Ausdruck in einen nicht-Lambda-Ausdruck bringen kann, also ohne Java 8. Die Methode list(...) spuckt mir ja eine Menge von Dateien, die ich dann zu filtern habe, ob sie jeweils eine reguläre Datei sind.

Laut Spec ist Stream<Path> der Rückgabewert von Files.list(..) ist. Alleine Stream<Path> ist für Lambda ausgelegt. Ich glaube, ich muss also gänzlich den Ausdruck umschreiben. Ich weiss nur nicht wie.

Hat jemand eine Idee?

Vielen Dank und viele Grüße aus Rheinland,

Eure Ratna
 
#2
Hi

die Files-Klasse aus dem nio-Namespace hat in Java7 noch gar keine list-Methode.
Die io-Files-klasse (https://docs.oracle.com/javase/7/docs/api/java/io/File.html) hat ein listFiles, das ein normales Array von File-Objekten zurückgibt.
Dann in einer Schleife durch, und für jede isRegularFile aus der nio-Klasse aufrufen (die Methode gibts in 7 schon)