簡體   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