2016-09-11 24 views
1

に引数リストを適応私はunapplyメソッドを実装したいが、私は、次の奇妙なエラーが発生します。Scalaの

Adapting argument list by creating a 4-tuple: this may not be what you want. 
[error]   signature: Some.apply[A](x: A): Some[A] 
[error] given arguments: genre._id, genre.name, genre.created, genre.updated 
[error] after adaptation: Some((genre._id, genre.name, genre.created, genre.updated): (Option[reactivemongo.bson.BSONObjectID], String, Option[org.joda.time.DateTime], Option[org.joda.time.DateTime])) 
[error]  Some(genre._id, genre.name, genre.created, genre.updated) 
[error]  ^

は、ここに私のコードです:

def unapply(genre: Genre): Option[(Option[BSONObjectID], String, 
            Option[DateTime], Option[DateTime])] = 
    Some(genre._id, genre.name, genre.created, genre.updated) 

私はの一部としてこれをやっていますJSON変換:

implicit val genreWrites: OWrites[Genre] = (
    (__ \ "_id").writeNullable[BSONObjectID] and 
     (__ \ "name").write[String] and 
     (__ \ "created").writeNullable[DateTime] and 
     (__ \ "updated").writeNullable[DateTime] 
    ) (unlift(Genre.unapply)) 

これはどうして起こりますか?

Some((genre._id, genre.name, genre.created, genre.updated)) 

何コンパイラがあなたを語っていることは、あなたがタイプAの単一の引数を期待Some[A].applyに複数のパラメータを渡しているということです。

答えて

3

あなたはタプルを宣言するために、追加の括弧が必要です。

+1

ありがとうございました!どのように私はそれを逃すことができるか分からない... –