Java 如何否定方法引用谓词

Java8中,可以使用方法引用来过滤流,例如:

Stream<String> s = ...;

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

是否有方法创建一个方法引用,该方法引用是对现有方法引用的否定,例如:

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

我可以创建如下的not方法,但我想知道JDK是否提供了类似的功能。

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

回答:

java-11提供了一个新的方法谓词

因此可以否定方法引用:

Stream<String> s = ...;

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

以上是 Java 如何否定方法引用谓词 的全部内容, 来源链接: utcz.com/qa/405724.html

回到顶部