2017-01-12 11 views
5

वहाँ है एक rxjava 1 में प्रत्यक्ष कक्षा में विधि लेकिन rxjava 2. में नहीं मिला मैं निम्नलिखित कोड में rxjava 2 में विधि से जगह ले सकता है कैसे से:rxjava में विधि Observable.from को हल नहीं कर सकता 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 जैसे इत्यादि इसका कारण यह है कि जब लाइब्रेरी जावा 8 के साथ संकलित की जाती है, तो जावैक अक्सर कार्यात्मक इंटरफ़ेस प्रकारों के बीच को असंबद्ध नहीं कर सकता है।

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

आप क्योंकि आप fromIterable() ऑपरेटर के माध्यम से अपनी सूची से सीधे Observable बना सकते हैं .just() उपयोग करने की आवश्यकता नहीं है।

Observable.fromIterable(ints) 
संबंधित मुद्दे