2016-09-15 6 views
40

मैंने इसे post पढ़ा है। लेकिन फिर भी मैं नहीं कोड minSdkVersion < पर निम्नलिखित 24.एंड्रॉइड एपीआई <24 पर जावा 8 स्ट्रीम एपीआई का उपयोग करना संभव है?

List<Car> newCars = cars.stream() 
         .filter(s -> s.getColor().equals("red")) 
         .collect(Collectors.toList()); 

यह नहीं चलता है की तरह जावा 8 स्ट्रीम एपीआई सुविधाओं से युक्त त्रुटि संदेश के कारण चला सकते हैं

कॉल की आवश्यकता है एपीआई स्तर 24 (वर्तमान मिनट 15 है): java.util.Collection # धारा

तो क्या कोई समाधान ढूंढता है?

+3

से कोई आप उपयोग नहीं कर सकते एपीआई 24. नीचे जावा धारा वहाँ है कि एक ही बात यह है कि काम – tyczj

+1

मुझे लगता है कि कम API के लिए समान काम करता है एक छोटा सा पुस्तकालय है को लागू 3 पार्टी पुस्तकालयों हैं: https://github.com/smaspe/FunctionalIterables – njzk2

+2

http: // stackoverflow.com/questions/39265004/is-android-n-stream-api-backported-to-lower-versions और http://stackoverflow.com/questions/39039566/is-it-possible-to-use-java- समान प्रश्नों (और उत्तरों) के लिए 8-फीचर्स-वैकल्पिक-और-स्ट्रीम-एंड्रॉइड -14-और-hig। – Sartorius

उत्तर

26

आप Java8 एपीआई स्तर पर धाराओं < 24.

हालांकि उपयोग नहीं कर सकते, कुछ पुस्तकालयों कि धारा कार्यक्षमता

https://github.com/aNNiMON/Lightweight-Stream-API

https://github.com/konmik/solid

https://sourceforge.net/projects/streamsupport/ के कुछ backport (उल्लेख नहीं है टिप्पणी में @sartorius)

+7

जबकि [ठोस] (https://github.com/konmik/solid) और [हल्के-स्ट्रीम-एपीआई] (https://github.com/aNNiMON/Lightweight-Stream-API) निश्चित रूप से Stream- के लिए मूल्यवान विकल्प हैं प्रोग्रामिंग की तरह, आईएमएचओ उनमें से कोई भी जावा 8 स्ट्रीम एपीआई के दूरस्थ रूप से "बैकपोर्ट" नहीं माना जा सकता है। एकमात्र प्रोजेक्ट जो मुझे पता है वह सिंटैक्स में बंद होने का दावा कर सकता है और जावा 8 स्ट्रीम में कार्यक्षमता के बराबर है [streamsupport] (https://sourceforge.net/projects/streamsupport/)। उदाहरण के लिए, यह समांतर धाराओं का भी समर्थन करता है। हालांकि यह एंड्रॉइड देवताओं के लिए इतना महत्वपूर्ण नहीं हो सकता है। – Sartorius

+0

IMO, हल्के-स्ट्रीम-एपीआई अच्छा एंड्रॉयड पर Gradle समर्थन की वजह से था और "का चयन करें" जैसे अतिरिक्त कहा, "GroupBy", आदि https://github.com/aNNiMON/Lightweight-Stream-API#additional- ऑपरेटरों। – LordParsley

+2

@LordParsley Streamsupport में भी ग्रैडल समर्थन है। अतिरिक्त के लिए, हाँ यह सच है। जैसा कि मैं इसे समझता हूं, आधिकारिक जावा 8 एपीआई से विस्तार/विचलन कभी भी स्ट्रीम समर्थन का एक डिज़ाइन लक्ष्य नहीं रहा है। – Sartorius

संबंधित मुद्दे