2017-01-12 86 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(),因爲你可以直接從你的列表,經由fromIterable()運營商創造Observable

Observable.fromIterable(ints)