Безопасно ли смешивать потоки Java + Rxjava - PullRequest
0 голосов
/ 12 февраля 2019

Предполагая, что у меня есть наблюдаемое и где-то вниз по течению, я решил фильтровать, используя потоки 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
        }
    });

1 Ответ

0 голосов
/ 13 февраля 2019

Consumer<T> принимает T, поэтому вы можете использовать все методы, предоставляемые T.

В любом случае проверьте документацию , RxJava предоставляет несколько операторов, таких как map, flatMap, filter и т. Д. Например, вы можете заменить в своем коде первый map следующим образом:

Observable.fromIterable(stringList).filter(x -> x.contains(RANDOM_TEXT))
...