Wie negieren eine Methode, Referenz-Prädikat

In Java 8, die Sie verwenden können, eine Methode, Verweis auf filter einen Strom, zum Beispiel:

Stream<String> s = ...;
long emptyStrings = s.filter(String::isEmpty).count();

Ist es, eine Möglichkeit zu schaffen, eine Methode, Referenz, ist die negation eines bestehenden, d.h. so etwas wie:

long nonEmptyStrings = s.filter(not(String::isEmpty)).count();

Ich könnte die not Methode wie unten, aber ich Frage mich, ob das JDK angeboten etwas ähnliches.

static <T> Predicate<T> not(Predicate<T> p) { return o -> !p.test(o); }
JDK-8050818 deckt die neben einer statischen Predicate.not(Predicate) Methode. Aber das Problem ist immer noch offen, damit wir sehen diese frühestens in Java 12 (wenn überhaupt).
Scheint, wie Antwort könnte die ultimative Lösung, angepasst JDK/11.
Ich würde wirklich gerne sehen, eine Besondere Methode, die Referenz-syntax für diesen Fall: s.filter(String::!isEmpty)

InformationsquelleAutor assylias | 2014-01-31

Schreibe einen Kommentar