你们任何人都知道为什么以下编译:
def foo() =
someObjectOfTypeFutureAny.asInstanceOf[Future[List[Bar]]]
foo()
虽然以下内容不是:
def foo[T]() =
someObjectOfTypeFutureAny.asInstanceOf[Future[List[T]]]
foo[Bar]()
归结为错误'List [T]是生成的GraphQL类型Seq [Bar]的无效类型。
someObjectOfTypeFutureAny是我从Akka演员那里收到的问题(返回一个List [Bar])
我正在使用Sangria-Graphql
我构建了一个基本应用程序,使用泛型将列表转换为另一个列表,传递上述示例中的泛型函数,该函数有效。所以我不确定我的错误来自哪里。
我的实际代码:
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]((context) => getArguments(context, "solutionentity", context.value.solution))
被调用的代码:
case NodeType.Solution =>
graph.Vertex.findSolutionEntitiesByIds(ids).asInstanceOf[List[SolutionEntity]]
def findSolutionEntitiesByIds(entityIds: List[String]): List[models.SolutionEntity] =