मेरे पास SourceObjects की सूची है और मुझे इसे परिणाम ऑब्जेक्ट्स की सूची में बदलने की आवश्यकता है।RxJava: वस्तुओं को अन्य वस्तुओं की सूची में बदलने के लिए कैसे करें
convertFromSource(srcObj);
निश्चित रूप से
मैं इस तरह यह कर सकते हैं:
मैं ResultObject का एक और तरीका का उपयोग करने के एक वस्तु प्राप्त कर सके
public void onNext(List<SourceObject> srcObjects) {
List<ResultsObject> resObjects = new ArrayList<>();
for (SourceObject srcObj : srcObjects) {
resObjects.add(new ResultsObject().convertFromSource(srcObj));
}
}
लेकिन मैं बहुत कोई है जो दिखा सकते हैं करने के लिए सराहना की जाएगी rxJava का उपयोग करके ऐसा कैसे करें।
यह वास्तव में साफ दिखता है, हालांकि कुछ नुकसान हैं। 1. यदि स्रोत एक से अधिक सूची में उत्सर्जित करता है, तो वे सभी 'flatMapIterable' द्वारा ऑब्जेक्ट्स की एक स्ट्रीम में फ़्लैट किए जा रहे हैं और' toList() 'उन्हें एक सूची में एकत्रित करेंगे। तो यदि आप कई उत्सर्जन की देखभाल करते हैं और उन्हें अलग-अलग सूचियों में रखते हैं, तो दुर्भाग्यवश आप इसे खो देते हैं। 2. 'toList()' पूरा करने के लिए देखे जाने वाले स्रोत के लिए प्रतीक्षा करता है, इसलिए यदि आप इसे अनंत अवलोकन (जैसे यूआई घटनाओं के लिए बाध्य) पर करते हैं, तो आपको कभी भी 'सब्सक्राइब() 'में कुछ भी नहीं मिलेगा। –
@ मार्किनकोज़ीन्स्की आप कैसे हल करेंगे। 2? मुझे स्थिति है जहां। सूची कुछ भी वापस नहीं करती है। धन्यवाद –
मुझे लगता है कि आपको बस एक अलग दृष्टिकोण का उपयोग करने की आवश्यकता है। यदि आप किसी सूची के प्रत्येक तत्व को बदलने की कोशिश कर रहे हैं, तो आपको केवल '.map (list ->/* लूप * /) के लिए सादे पुराने का उपयोग करके एक नई सूची बनाना होगा। या अपनी सूची को '.map()' के अंदर बदलने के लिए किसी भी अन्य दृष्टिकोण का उपयोग करें। अन्यथा आप इसे सीमित करने के लिए अपने अनंत अवलोकन योग्य पर '.take (itemCount)' जैसे ऑपरेटरों का उपयोग कर सकते हैं। ध्यान दें कि यह 'itemCount' के बाद सभी तत्वों को स्पष्ट रूप से छोड़ देता है, ताकि हो सकता है कि आप जो भी चाहते हों। –