混合使用 Java 流 + Rxjava 是否安全
Is it safe to mix Java streams + Rxjava
假设我有一个 observable 并且在下游某处我选择使用 java 8 个流而不是使用 rxjava 运算符进行过滤。
这会导致任何问题吗?
List<String> stringList = new ArrayList<>();
Observable.just(stringList)
.map(new Function<List<String>, List<String>>() {
@Override
public List<String> apply(List<String> strings) throws Exception {
return strings.stream().filter(it -> it.contains("randomText"))
.collect(Collectors.toList());
}
}).subscribe(new Consumer<List<String>>() {
@Override
public void accept(List<String> strings) throws Exception {
//do something with list
}
});
Consumer<T>
接受T
,所以你可以使用T
提供的所有方法。
无论如何检查documentation,RxJava提供了几个运算符,如map
、flatMap
、filter
等。例如,你可以在你的代码中替换先map
如下:
Observable.fromIterable(stringList).filter(x -> x.contains(RANDOM_TEXT))
假设我有一个 observable 并且在下游某处我选择使用 java 8 个流而不是使用 rxjava 运算符进行过滤。 这会导致任何问题吗?
List<String> stringList = new ArrayList<>();
Observable.just(stringList)
.map(new Function<List<String>, List<String>>() {
@Override
public List<String> apply(List<String> strings) throws Exception {
return strings.stream().filter(it -> it.contains("randomText"))
.collect(Collectors.toList());
}
}).subscribe(new Consumer<List<String>>() {
@Override
public void accept(List<String> strings) throws Exception {
//do something with list
}
});
Consumer<T>
接受T
,所以你可以使用T
提供的所有方法。
无论如何检查documentation,RxJava提供了几个运算符,如map
、flatMap
、filter
等。例如,你可以在你的代码中替换先map
如下:
Observable.fromIterable(stringList).filter(x -> x.contains(RANDOM_TEXT))