Как компилятор находит неявный метод для Json.obj()?

Мы могли бы построить объект json так:

import java.time.Instant
import play.api.libs.json.Json

object Test extends App {
  println(Json.obj("time" -> Instant.now()))
  //Output: {"time":"2018-05-25T18:13:23.409Z"}
}

Подпись метода Json.obj():

def obj(fields: (String, JsValueWrapper)*): JsObject

Пока неявный метод Json.toJsFieldJsValueWrapper не входит в сферу, как это Instant.now() конвертировано в JsValueWrapper успешно? Заранее спасибо за ваш ответ!

1 ответ

Решение

Я получаю ответ отсюда Внешние объекты для вложенных типов. Причина в том, что внешние объекты для вложенных типов также вносят свой вклад.

Другие вопросы по тегам