私はプレイフレームワークを使用しており、抽象クラスを持っています:
abstract class Base{...}
コンパニオン オブジェクト内に独自の暗黙的な JSON ライターを持つ
object Base {
implicit val baseWrites: Writes[Base] = (...)(unlift(Base.unapply))
}
この抽象クラスをサブクラス化します。
case class SubClass{...}
また、そのコンパニオン オブジェクト内に独自の暗黙的な JSON ライターがあります。
object SubClass {
implicit val subClassWrites: Writes[SubClass] = (...)(unlift(SubClass.unapply))
}
Json.toJson(SubClass) を使用してサブクラス オブジェクトをシリアル化しようとすると、エラーが発生します。
[error] both value subClassWrites in object SubClass of type => play.api.libs.json.
Writes[models.SubClass]
[error] and value baseWrites in object Base of type =>
play.api.libs.json.Writes[models.Base]
[error] match expected type play.api.libs.json.Writes[models.SubClass]
[error] Ok(Json.toJson(SubClass.find(id)))
あいまいさを取り除く方法はありますか?