Wenn eine Java-Methode eine Function<? super T, ? extends U>
akzeptiert, dann ist es möglich, Methodenverweise in einer Syntax wie der folgenden bereitzustellen: .Chaining Lambda-Funktionen
Ich frage mich jedoch, ob es eine Möglichkeit gibt, mehrere Methodenaufrufe zu verketten. Hier ist ein Beispiel, um den Fall zu veranschaulichen.
// on a specific object, without lambda
myString.trim().toUpperCase()
Ich frage mich, ob es eine Syntax gibt, um dies in einen Lambda-Ausdruck zu übersetzen. Ich hoffe, dass etwas wie das Folgende ist:
// something like: (which doesn't work)
String::trim::toUpperCase
Gibt es alternativ eine Dienstprogrammklasse zum Zusammenführen von Funktionen?
// example: (which does not exist)
FunctionUtil.chain(String::trim, String::toUpperCase);
Wie wäre es mit ['Function.andThen'] (https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html#andThen-java.util.function.Function -)? –
Die kanonische Lösung besteht darin, _beenden Sie method references_, und schreiben Sie einfach "myString -> myString.trim(). ToUpperCase()". –
@LouisWasserman eine hervorragende Problemumgehung. Aber ich habe wirklich auf mehr syntaktische Süße gehofft. – bvdb