如何在java 8 stream api中使用guava Predicates作为过滤器
发布时间:2020-05-24 19:50:43 所属栏目:Java 来源:互联网
导读:Guava Predicates不能作为java 8 streaming API的过滤器使用. 例如,这是不可能的: Number first = numbers.stream() .filter( com.google.common.base.Predicates.instanceOf(Double.class))) .findFirst() .get(); 当guava
|
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? 解决方法Guava谓词的apply方法的方法句柄是一个可用作过滤器的功能接口:Number first = numbers.stream()
.filter(Predicates.instanceOf(Double.class)::apply)
.findFirst()
.get(); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
