कृपया मेरे साथ भालू, मैं अभी भी स्कैला के साथ बहुत नाराज हूं।java.util.Iterator को स्कैला सूची में?
private lazy val keys : List[String] = obj.getKeys().asScala.toList
obj.getKeys डॉक्स के अनुसार एक java.util.Iterator
कॉलिंग asScala, JavaConverers के माध्यम से (जो आयात किया जाता है) देता है ..
java.util.Iterator <==> scala.collection.Iterator
: मैं निम्नलिखित कोड है scala.collection.Iterator
def toList : List[A]
तो यह मैं मानना था कि यह, काम करना चाहिए के आधार पर परिभाषित करता है howev एर यहाँ संकलन त्रुटि है।
[scalac] <file>.scala:11: error: type mismatch;
[scalac] found : List[?0] where type ?0
[scalac] required: List[String]
[scalac] private lazy val keys : List[String] = obj.getKeys().asScala.toList
[scalac] one error found
मैं समझता हूँ प्रकार पैरामीटर या जावा इटरेटर एक जावा स्ट्रिंग है, और है कि मैं स्काला स्ट्रिंग की एक सूची बनाने के लिए कोशिश कर रहा हूँ, लेकिन (शायद भोलेपन से) सोचा था कि वहाँ एक अंतर्निहित रूपांतरण होगा।
उत्तर के लिए बहुत बहुत धन्यवाद! आपके जैसा लगता है और मैथ्यू फेरवेल अधिकांश भाग के लिए सहमत हैं। मैंने जो किया है, मैंने किया है, obj.getKeys()। AsInstanceOf [java.util.Iterator [स्ट्रिंग]]। AsScala.toList और यह काम करने लगता है, और मुझे संकलन चेतावनी नहीं मिली। – rshepherd