Jak zanegować predykat odwołania do metody?

Czy istnieje sposób na utworzenie odwołania do metody, które jest negacją istniejącego, tj. Coś takiego:

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

Mogłabym stworzyć metodę not taką jak poniżej, ale zastanawiałam się, czy JDK oferuje coś podobnego?

static <T> Predicate<T> not(Predicate<T> p) { return o -> !p.test(o); }

Dzięki za pomoc!

1 odpowiedź

java-11 oferuje nową metodę Predicate#not

Możesz więc zanegować odwołanie do metody w ten sposób:

Stream<String> s = ...;
long nonEmptyStrings = s.filter(Predicate.not(String::isEmpty)).count();

Twoja odpowiedź

Zaloguj się aby odpowiedzieć.

Operiada

Operiada to polskojęzyczne forum informatyczne działające na zasadzie pytań i odpowiedzi.

Obserwowane tagi

Zaloguj się aby obserwować tagi.