При определении общего класса в Scala, как я могу гарантировать, что параметр типа «A» должен быть классом case?Scala Определите общий класс, который принимает только классы case
class TypedCollection[A](name: String){}
Контекст:
Я пытаюсь определить общий класс «TypedCollection» обертки, чтобы взаимодействовать с reactivemongo JSONCollection, как если бы это был сборник тематических классов (по аналогии с типизированным Slick для реляционных баз данных).
Причина «A» должна быть классом case, поэтому ему автоматически будет присвоен метод «unapply». Этот метод используется в родовом классе при создании неявных преобразований для типа «А» в JsObject или BSONObject, чтобы он мог храниться в MongoDB. т.е.
implicit val AWrites = Json.writes[A]
implicit val AReads = Json.reads[A]
Не видеть цель ... почему бы не проверить есть 'A: OWrites', или' A: OFormat' (или 'A: BSONDocument {Reader, Writer} ')? – cchantep