generics - Converting Enumeration to Iterator -
मेरे पास java.util.Enumerations
के लिए निम्नलिखित अंतर्निहित रूपांतरण है I enumerationIterator [एक] (ई: गणन [एक]): def निहित इटरेटर [एक] = {नई इटरेटर [एक] {def hasNext = e.hasMoreElements डीईएफ़ अगले = e.nextElement डीईएफ़ हटाने = नए UnsupportedOperationException फेंक () }}
दुर्भाग्यवश यह ZipFile.entries
के लिए काम नहीं करता है क्योंकि यह एक enumeration & lt ;? देता है जीपएन्ट्री का विस्तार करता है;
(देखें) और स्कैलाक मुझे बताता रहता है
टाइप बेमेल; पाया: java.util.Iterator जहां प्रकार 0 से & lt ;: java.util.zip.ZipEntry आवश्यक [0?]: [?] इटरेटर
मैं यह पता लगाने की कैसे नहीं कर सकते स्टॉ में वार्तालाप का काम करना जैसे
List.fromIterator (नई zipfile (z) .entries))
List.fromIterator एक scala.Iterator उम्मीद है, लेकिन अपने निहित एक java.util.Iterator लौटा रहा है।
यह काम करता है
आयात java.util .Enumeration निहित डीईएफ़ enum2Iterator [एक] (ई: गणन [एक])। = नए इटरेटर [एक] {def अगले = e.nextElement डीईएफ़ hasNext = e.hasMoreElements} आयात java.util.zip {zipfile, ZipEntry} वैल एल = List.fromIterator (नई zipfile (शून्य: java.io.File) .entries)
शीर्ष पर एक आयात जोड़ना रोकता संकलन
आयात जावा .atil.Iterator
जावा 2.util.Iterator का उपयोग करके केवल 2.8 में स्केला और जावा को एकीकृत करने के बारे में कुछ चर्चा हुई है। डाउनगेड पर, जावा के इटरेटर में एक दूरस्थ विधि है, जो स्काला के अपरिवर्तनीय संग्रह के लिए कोई मतलब नहीं है। UnsupportedOperationException? Blech! प्लस की ओर जो इस त्रुटि की तरह सामग्री बनाता है दूर चले जाते हैं।
संपादित करें: मैंने एक Trac मुद्दा जोड़ दिया है कि त्रुटि संदेश स्पष्ट होता है, "यह आवश्यक था: स्कैला.इटरेटर [?]"
Comments
Post a Comment