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