Scala,访问trait中抽象类型的类
我正在Scala代码中试验隐式变量。我编写了以下示例代码,但不幸的是它无法编译。我在想,有人知道这里少了什么吗?(在linux上使用scala 2.8.0和SBT 0.7.4) 谢谢, 阿里Scala,访问trait中抽象类型的类,scala,scala-2.8,Scala,Scala 2.8,我正在Scala代码中试验隐式变量。我编写了以下示例代码,但不幸的是它无法编译。我在想,有人知道这里少了什么吗?(在linux上使用scala 2.8.0和SBT 0.7.4) 谢谢, 阿里 trait提要 特性饲料厂{ 类型TT在编译时被遗忘(参见类型擦除)。但scala提供了Manifests,通过编译来保留类型 这里是一个更完整的。谢谢,我用隐式val op_name={def op_name[T](隐式m:scala.reflect.Manifest[T])={m.getClass.ge
trait提要
特性饲料厂{
类型TT在编译时被遗忘(参见类型擦除)。但scala提供了Manifest
s,通过编译来保留类型
这里是一个更完整的。谢谢,我用隐式val op_name={def op_name[T](隐式m:scala.reflect.Manifest[T])={m.getClass.getCanonicalName};op_name}修复了它但是我觉得它看起来有点难看,因为我需要定义一个隐式变量,有更好的方法吗?@Ali使用scala 2.8,您应该能够使用def op_name[T:Manifest]=隐式[Manifest[T]].getClass.getCanonicalName
Ali您的解决方案不起作用。它总是不返回任何内容。您可能应该编写val op_name={def op_name[T](隐式m:scala.reflect.Manifest[T])={m.getClass.getCanonicalName};op_name[T]},它说错误:没有可用于X.this.T的清单
trait Feed
trait FeedFactory {
type T <: Feed
implicit val op_name = classOf[T].getCanonicalName
def create():T
def destroy(op:T)
}
Error: class type required but FeedFactory.this.T found
implicit val op_name = classOf[T].getCanonicalName