スカラでジェネリッククラスを定義するときに、どのようにして型パラメータ 'A'をケースクラスにする必要がありますか?Scalaケースクラスのみを受け入れるジェネリッククラスを定義する
class TypedCollection[A](name: String){}
コンテキスト:
私はそれが(リレーショナルデータベース用スリックタイプセーフと同様)ケースクラスのコレクションであるかのようreactivemongo JSONCollectionをやり取りするために、一般的な「TypedCollection」ラッパークラスを定義しようとしています。
理由は 'A'はケースクラスでなければならないので、自動的に '適用されない'メソッドが与えられます。このメソッドは、JsObjectまたはBSONObjectへの型 'A'の暗黙的な変換を作成するときにジェネリッククラスで使用され、MongoDBに格納されます。即ち
implicit val AWrites = Json.writes[A]
implicit val AReads = Json.reads[A]
'そこにAをチェックしていない理由は...目標を参照してくださいしないでください:OWrites'、または' A:OFormat'(または 'A:BSONDocumentを{リーダー、ライター} ')? – cchantep