Cannot resolve Observable.from method in rxjava 2

In the Observable class in rxjava 1, there is a from method, but not found in rxjava 2. How to replace the from method from rxjava 2 in the following code:

List<Integer> ints = new ArrayList<>(); for (int i=1; i<10; i++) { ints.add(new Integer(i)); } Observable.just(ints) .flatMap(new Function<List<Integer>, Observable<Integer>>() { @Override public Observable<Integer> apply(List<Integer> ints) { return Observable.from(ints); } }) 
+5
source share
2 answers

You can use Observable.fromIterable(source)

From the documentation :

Some operator overloads were renamed using a postfix, for example fromArray, fromIterable, etc. The reason for this is that when a library is compiled with Java 8, javac often cannot resolve the ambiguity between functional types of interfaces.

 List<Integer> ints = new ArrayList<>(); for (int i=1; i<10; i++) { ints.add(new Integer(i)); } Observable.just(ints) .flatMap(new Function<List<Integer>, Observable<Integer>>() { @Override public Observable<Integer> apply(List<Integer> ints) { return Observable.fromIterable(ints); } }) 
+10
source

You do not need to use .just() because you can create an Observable directly from your list using the fromIterable() operator.

  Observable.fromIterable(ints) 
+4
source

Source: https://habr.com/ru/post/1262676/


All Articles