如何否定方法引用谓词

在Java 8中,可以使用方法引用过滤流,例如:

流<字符串>s=。。。;
long emptyStrings=s.filter(字符串::isEmpty).count();

是否有一种方法可以创建一个与现有方法相反的方法引用,例如:

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

我可以像下面那样创建而不是方法,但我想知道JDK是否提供了类似的功能

静态<T>谓词<T>not(谓词<T>p){returno->!p.test(o);}

谓词。非(…)

java-11提供了一种新方法谓词#非

因此,您可以否定方法引用:

流<字符串>s=。。。;
long nonEmptyStrings=s.filter(Predicate.not(String::isEmpty)).count();

发表评论