2014-09-28 12 views

उत्तर

14
scaladoc से

:

नोट जो रनटाइम के दौरान एक डाली की सफलता सापेक्ष स्काला का विलोपन अर्थ विज्ञान है। इसलिए अभिव्यक्ति 1.asInstanceOf [स्ट्रिंग] रनटाइम पर क्लासकास्ट अपवाद फेंक देगा, जबकि अभिव्यक्ति सूची (1) .asInstanceOf [सूची [स्ट्रिंग]] नहीं होगा। बाद के उदाहरण में, क्योंकि संकलन के हिस्से के रूप में टाइप तर्क मिटा दिया गया है, यह जांचना संभव नहीं है कि सूची की सामग्री अनुरोधित प्रकार के हैं या नहीं।

आप चर का उपयोग या रूपांतरण यह correclty एक अपवाद फेंकता मैप करने के लिए कोशिश करते हैं:

scala> List("a").asInstanceOf[List[Int]] 
res0: List[Int] = List(a) 

scala> res0 
res1: List[Int] = List(a) 

scala> res0(0) 
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer 

List("a").map(_.asInstanceOf[Int]) 
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer 
+2

इस दिलचस्प है – tuxdna

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