Scala转换为泛型列表无效类型
你们中的任何人都知道为什么要编译以下内容:Scala转换为泛型列表无效类型,scala,generics,casting,Scala,Generics,Casting,你们中的任何人都知道为什么要编译以下内容: def foo() = someObjectOfTypeFutureAny.asInstanceOf[Future[List[Bar]]] foo() 但以下情况不适用: def foo[T]() = someObjectOfTypeFutureAny.asInstanceOf[Future[List[T]]] foo[Bar]() 它会出现错误“List[T]对于生成的GraphQL type Seq[Bar]是无效类型” som
def foo() =
someObjectOfTypeFutureAny.asInstanceOf[Future[List[Bar]]]
foo()
但以下情况不适用:
def foo[T]() =
someObjectOfTypeFutureAny.asInstanceOf[Future[List[T]]]
foo[Bar]()
它会出现错误“List[T]对于生成的GraphQL type Seq[Bar]是无效类型”
someObjectOfTypeFutureAny是我从Akka演员的提问中得到的(它返回一个列表[Bar])
我正在使用
我构建了一个基本的应用程序,使用泛型将一个列表转换为另一个列表,并将函数传递给上面示例中的泛型,这很有效。所以我不确定我的错误是从哪里来的
我的实际代码:
def complexFieldResolver[Val, T](arguments: (Context[Unit, Val]) => List[String]): Field[Unit, Val] = {
Field("solution",
ListType(solutionEntityType),
arguments = OptionalEntityIdArgument :: OptionalEntityIdsArgument :: Nil,
resolve = ctx =>
viewActor.ask(Query(NodeType.Solution, arguments(ctx))).asInstanceOf[Future[List[T]]]
)
}
按如下方式调用:complexFieldResolver[ApplicationEntity,SolutionEntity]((上下文)=>getArguments(上下文,“SolutionEntity”,上下文.value.solution))
正在调用的代码:
case NodeType.Solution =>
graph.Vertex.findSolutionEntitiesByIds(ids).asInstanceOf[List[SolutionEntity]]
def findSolutionEntitiesByIds(entityIds: List[String]): List[models.SolutionEntity] =
a实例
关闭
?@rumoku他想关闭实例;PShow us定义字段
构造函数。只要你仔细观察,你就会明白答案。@rumoku谢谢!我查看了Field的apply方法:def apply[Ctx,Val,Res,Out](..)
没有真正理解发生了什么,我将我的:字段(“解决方案”
,重写为:字段[Unit,Val,Any,Any](“解决方案
。现在查看一下代码,看看为什么会这样做,我还没有发现太多,因为我对Scala非常陌生。您的小示例确实可以编译。