u-ryo's blog

various information for coding...

Negate Method Reference

| Comments

Javaのstreamで、filter(s -> !s.isEmpty())を method referenceに出来ないかなー、と思ったんですが、 java.util.function.Predicateを使って、

  1. Java11だとfilter(Predicate.not(String::isEmpty))
  2. 現状ではfilter(((Predicate<String>) String::isEmpty).negate())と長くなる
  3. 下記のように自分で定義してfilter(not(String::isEmpty))
1
2
3
public static <T> Predicate<T> not(Predicate<T> t) {
    return t.negate();
}

cf. stack overflow: How to negate a method reference predicate

現状では長くなるので、やめました。

Comments