【问题标题】:Manifest error for anonymous type匿名类型的清单错误
【发布时间】:2014-02-24 08:18:36
【问题描述】:

我仍然对 Scala 有所了解,因此试图找出以下代码中缺少的内容。当我尝试使用匿名类型实例化 genericserializer 时收到此错误消息

描述资源路径位置类型类型不匹配;成立 : 需要 scala.reflect.Manifest[Object]: scala.reflect.Manifest[FolderMgmtDAO.this.anoMoveType] 注意:对象>: FolderMgmtDAO.this.anoMoveType,但 trait Manifest 在 键入 T。您可能希望研究通配符类型,例如 _ >: FolderMgmtDAO.this.anoMoveType。 (SLS 3.2.10) FolderMgmtDAO.scala /somucore/src/somu/core 第20行Scala问题

下面是代码

object GenericSerializer
{
  def apply[T <:AnyRef:Manifest]() = new GenericSerializer[T]()
}

class GenericSerializer[T <:AnyRef:Manifest] extends IMongoSerializer[T] {} 

//Anonymous type creation and using GenericSerializer
    type anoMoveType = { def folderPath:String } 
        val szr = GenericSerializer[anoMoveType]

【问题讨论】:

    标签: scala


    【解决方案1】:

    Looks like 清单是不可能的。 您应该改用TypeTag。像这样:

    import scala.reflect.runtime.universe._
    object GenericSerializer
    {
      def apply[T <:AnyRef]()(implicit tag: TypeTag[T]) = {}
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多