параметризованная черта закрытого типа в формате Playframework json - PullRequest
0 голосов
/ 22 января 2019

У меня есть типизированная запечатанная черта

sealed trait PropertyValue[T <: Property]

Мне нужно написать format для сериализации / десериализации Json.Я пытаюсь

implicit def format[P <: Property : Format]: Format[PropertyValue[P]] = {
    Format(
      Reads(j =>
        Json.fromJson[StringPropertyValue](j)
          .orElse(Json.fromJson[NumberPropertyValue](j))
          .orElse(JsError("Undefined type"))
      ),
      Writes(o => Json.toJson(o))
    )
  }

, но у меня есть

type mismatch;
[error]  found   : play.api.libs.json.JsResult[Product with Serializable with PropertyValue[_ >: StringProperty with NumberProperty <: Product with Serializable with Property]]
[error]  required: play.api.libs.json.JsResult[PropertyValue[P]]

Есть ли способ для реализации Reads[trait[T]] для типизированной характеристики?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...