以下代码:
abstract class Foo[T: ClassTag] {
def v(a: Any): Any = a match {
case _ if a.isInstanceOf[T] => Some(a)
case _ => None
}
}
在编译中产生以下内容:
Warning: abstract type T is unchecked since it is eliminated by erasure
case _ if a.isInstanceOf[T] =>
奇怪的是,大小写匹配将按预期工作。有没有办法让 isInstanceOf[T] 也知道 ClassTag 上下文绑定?