2014-09-28 27 views

cevap

14

: zamanında bir döküm başarısı modülo Scala'nın silme semantik olduğunu

Not. Bu nedenle, 1.asInstanceOf [String] ifadesi, çalışma zamanında ClassCastException atar, buna karşılık, List (1) .asInstanceOf [List [String]] ifadesi kullanılmaz. Son örnekte, tip argümanı derlemenin bir parçası olarak silindiğinden, listenin içeriğinin istenen tipte olup olmadığını kontrol etmek mümkün değildir.

Eğer değişken erişmek veya correclty bir istisna atar dönüşüm haritasına çalışırsanız:

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

bu ilginç – tuxdna