繁体   English   中英

Scala 类型推断不适用于游戏 json

[英]Scala type inference not working with play json

我正在写一个 http 客户端,这是我的签名:

def post[Req, Resp](json: Req)(implicit r: Reads[Resp], w: Writes[Req]): Future[Resp]

在幕后使用播放 json。

当我这样使用它时

def create(req: ClusterCreateRequest): Future[ClusterCreateResponse] = endpoint.post(req)

我收到以下错误

diverging implicit expansion for type play.api.libs.json.Reads[Resp]

以下作品

def create(req: ClusterCreateRequest): Future[ClusterCreateResponse] = endpoint.post[ClusterCreateRequest, ClusterCreateResponse](req)

为什么类型推断没有按预期工作? 我能为此做些什么?

diverging implicit expansion for type play.api.libs.json.Reads[Resp]意味着 Resp 几乎没有 JSON 序列化程序没有被另一个隐藏。

不可能查明问题的根本原因并说修复X ,一切都会根据帖子中给出的信息进行。

但是您可以尝试“调试”隐式搜索。 考虑检查隐式搜索顺序: Scala 在哪里寻找隐式? 在想法中启用隐式参数扩展可能有助于检查哪些隐式(Ctrl + Shift + =)导致冲突。

对 class 类型实例的一般建议 - 将它们组织起来并声明,将它们放到配套的 object 或特别专用的 object 中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM