Java 8 では、メソッド参照を使用してストリームをフィルタリングできます。次に例を示します。
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); }