Observable.fromCallable()
एक समारोह को एक अवलोकन में परिवर्तित करने के लिए बहुत अच्छा है। लेकिन आप चेक अपवादों को कैसे संभालते हैं जिन्हें फ़ंक्शन द्वारा फेंक दिया जा सकता है?एक चेक अपवाद के साथ Observable.fromCallable() का उपयोग कैसे करें?
मैंने देखा है कि उदाहरणों में से अधिकांश उदाहरण लैम्बडास और "बस काम" करते हैं। लेकिन आप lambdas के बिना यह कैसे करेंगे? उदाहरण के लिए, this great article से नीचे बोली देखें:
Observable.fromCallable(() -> downloadFileFromNetwork());
अब यह एक एक लाइनर है! यह चेक अपवादों को परिभाषित करने के रूप में चेक अपवादों से संबंधित है, और अधिक अजीब Observable.just() और Observable.error() ऐसी आसान चीज़ के लिए!
Observable.fromCallable(new Func0<File>() { @Override public File call() { return downloadFileFromNetwork(); } }
लेकिन अगर:
जब मैं एक लैम्ब्डा अभिव्यक्ति के बिना ऊपर प्रत्यक्ष, अन्य उदाहरण के आधार पर मैंने देखा है लागू करने के लिए प्रयास करते हैं, और कैसे एंड्रॉयड स्टूडियो ऑटो पूरा करता है, मैं निम्नलिखित मिल downloadFileFromNetwork()
एक चेक अपवाद फेंकता है, मुझे इसे पकड़ने और इसे RuntimeException
में लपेटना होगा। एक बेहतर तरीका होना चाहिए! उपरोक्त लैम्ब्डा इसका समर्थन कैसे करता है?!?
java.util.concurrent का उपयोग करें। दस्तावेज़ों में देखा जा सकता है http://reactivex.io/RxJava/javadoc/rx/Observable.html#fromCallable(java.util.concurrent.Callable) – flakes