[英]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.