2017-01-12 24 views
5

Có một từ phương thức trong lớp quan sát ở rxjava 1 nhưng không tìm thấy trong rxjava 2. Làm thế nào tôi có thể thay thế từ phương pháp trong rxjava 2 trong đoạn mã sau:Không thể giải quyết phương pháp Observable.from trong 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); 
       } 
      }) 

Trả lời

10

Bạn có thể sử dụng Observable.fromIterable(source)

Từ documentation:

một số quá tải toán tử đã được đổi tên với một postfix, chẳng hạn như fromArray, fromIterable vv Lý do cho điều này là khi thư viện được biên dịch với Java 8, javac thường không thể phân biệt giữa các loại giao diện chức năng.

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

Bạn không cần phải sử dụng .just() vì bạn có thể tạo Observable trực tiếp từ danh sách của bạn qua fromIterable() điều hành.

Observable.fromIterable(ints) 
Các vấn đề liên quan