Guava
Predicates不能作为java 8 streaming API的过滤器使用.
例如,这是不可能的:
Number first = numbers.stream() .filter( com.google.common.base.Predicates.instanceOf(Double.class))) .findFirst() .get();
当guava谓词转换为java 8谓词时,如何可能,如下所示:
public static <T> Predicate<T> toJava8(com.google.common.base.Predicate<T> guavaPredicate) { return (e -> guavaPredicate.apply(e)); } Number first = numbers.stream() .filter( toJava8( instanceOf(Double.class))) .findFirst() .get();
问题:有没有更优雅的方法在java 8中重用guava Predicates?