Scala类型错误 – 没有类型参数,预期:一个
发布时间:2020-12-16 10:04:18 所属栏目:安全 来源:网络整理
导读:嗨其他 Scala开发人员, 任何人都可以向我解释下面的代码中的类型推断有什么问题,以及如何修复它. 以下代码是使用Scala 2.10.2的Play 2.2的自定义操作 class Test { trait Entity class NodeRequest[A,K :Entity](val entity: K,val request: Request[A]) ext
嗨其他
Scala开发人员,
任何人都可以向我解释下面的代码中的类型推断有什么问题,以及如何修复它. 以下代码是使用Scala 2.10.2的Play 2.2的自定义操作 class Test { trait Entity class NodeRequest[A,K <:Entity](val entity: K,val request: Request[A]) extends WrappedRequest[A](request) def LocateResource[A,K](itemId: Int,v: List[K],forceOwners:Boolean = true) = new ActionBuilder[NodeRequest[A,K]]() { def invokeBlock[A](request: Request[A],block: (NodeRequest[A,K]) => Future[SimpleResult]) = { Future.successful(Ok) } } [error] Test.this.NodeRequest[A,K] takes no type parameters,expected: one [error] def LocateResource[A,forceOwners:Boolean = true) = new ActionBuilder[NodeRequest[A,K]]() { [error] ^ 解决方法
错误消息有点令人困惑 – 它实际上是指ActionBuilder的类型参数.您需要的是类型函数(或更具体地,部分类型的应用程序).这在Scala中有点棘手. Scala 2.8语言参考实际上说你做不到,但事实并非如此.试试这个:
def LocateResource[A,forceOwners:Boolean = true) = new ActionBuilder[({type λ[B] = NodeRequest[B,K]})#λ]() { (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容