【发布时间】:2015-12-11 03:06:59
【问题描述】:
我试图回答this 的问题,因为我以为我知道答案。 原来,我还不够了解:/
这是我做过的一个测试:
class Inst[T] {
def is(x: Any) = scala.util.Try { as(x) }.isSuccess
def as(x: Any): T = x.asInstanceOf[T]
}
scala> new Inst[String].is(3)
res17: Boolean = true
scala> new Inst[String].as(3)
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
... 33 elided
这里发生了什么?为什么只有第二次调用as 抛出,而不是第一次?
【问题讨论】:
标签: scala