【发布时间】:2011-06-19 01:44:59
【问题描述】:
如果之前已经回答过,请指点我更正的链接。
我有这个代码:
def getResult(a:Any):Any = a
def getAnswer[T](i:Int) = {
val result = getResult(i)
result match {
case t:T => Some(t)
case _ => None
}
}
这给了我一个unchecked warning,并且所有内容都与T 匹配。例如,当我执行getAnswer[Int](2) 时,我得到Some(2)(如预期的那样)。但是,如果我执行getAnswer[String](2),我也会得到Some(2),这是意料之外的(我需要None)。
有没有办法解决类型擦除并以某种方式让getAnswer 正常工作(即,当且仅当结果是T 类型时才返回Some(result))?
提前致谢。
【问题讨论】: