Chr*_*iss 6 java collections guava java-8 java-stream
Guava Predicates不能作为java 8 streaming API的过滤器使用.
例如,这是不可能的:
Number first = numbers.stream()
.filter( com.google.common.base.Predicates.instanceOf(Double.class)))
.findFirst()
.get();
Run Code Online (Sandbox Code Playgroud)
当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();
Run Code Online (Sandbox Code Playgroud)
问题:有没有更优雅的方法在java 8中重用guava Predicates?
wer*_*ero 15
applyGuava谓词方法的方法句柄是一个可用作过滤器的功能接口:
Number first = numbers.stream()
.filter(Predicates.instanceOf(Double.class)::apply)
.findFirst()
.get();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1788 次 |
| 最近记录: |