2017-01-12 13 views
5

Там является из метода в наблюдаемом классе в rxjava 1, но не нашли в rxjava 2. Как я могу заменить из метода в rxjava 2 в следующем коде:не удается разрешить метод Observable.from в rxjava 2

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); 
       } 
      }) 

ответ

10

Вы можете использовать Observable.fromIterable(source)

От documentation:

Некоторые перегруженных операторов были переименованы с постфикса, такие как fromArray, fromIterable и т. д. Причина этого в том, что, когда библиотека скомпилирована с Java 8, javac часто не может устранить между типами функциональных интерфейсов.

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); 
      } 
     }) 
4

Вам не нужно использовать .just(), потому что вы можете создать Observable непосредственно из списка с помощью fromIterable() оператора.

Observable.fromIterable(ints) 

 Смежные вопросы

  • Нет связанных вопросов^_^