我已经看到这些情况工作正常(注意scala.Int而不是Int):
def f(l: List[scala.Int]): List[scala.Int] = l
val l: List[scala.Int] = List[scala.Int]()
但在以下示例中使用整个路径失败:
def f[T: TypeTag](l: List[T]): Int = {
l match {
case li: List[scala.Int] if typeOf[T] <:< typeOf[scala.Int] => li(0)
case _ => 0
}
}
是否有可能在保持scala.Int的同时摆脱这种情况?问题是我需要自动生成此代码,并且我想避免使用import redefinitions。