2

現在発生している次の問題を修正するために、0.12.RC3 にアップグレードしています。アップグレード後、メソッドの非推奨警告を受け取りましたcollect

だから私はから移動しました:

def find(query: JsObject = Json.obj())(implicit reader: Reads[T]): Future[List[T]] = {
    collection.flatMap(_.find(query).cursor[T](ReadPreference.nearest).collect[List]())
}

に:

def find(query: JsObject = Json.obj())(implicit reader: Reads[T]): Future[List[T]] = {
    collection.flatMap(_.find(query).cursor[T](ReadPreference.nearest).collect[List](Int.MaxValue, Cursor.FailOnError()))
}

ただし、残念ながら次のエラーが表示されます。

タイプの不一致、予想: (JSONCollection) => Future[NotInferedS]、実際: (JSONCollection) => Any

4

1 に答える 1

5

コンパイラ メッセージが欠落していると思います。次のようなメッセージが表示されるはずです。

  (maxDocs: Int,stopOnError: Boolean)(implicit cbf: scala.collection.generic.CanBuildFrom[List[_],T,List[T]], implicit ec: scala.concurrent.ExecutionContext)scala.concurrent.Future[List[T]] <and>
  (maxDocs: Int,err: reactivemongo.api.Cursor.ErrorHandler[List[T]])(implicit cbf: scala.collection.generic.CanBuildFrom[List[_],T,List[T]], implicit ec: scala.concurrent.ExecutionContext)scala.concurrent.Future[List[T]]
 cannot be applied to (Int, reactivemongo.api.Cursor.ErrorHandler[Any])
Error occurred in an application involving default arguments.
           collection.flatMap(_.find(query).cursor[T](ReadPreference.nearest).collect[List](Int.MaxValue, Cursor.FailOnError()))

そのような場合、非推奨のものの代わりに新しいものを使用したい場合は、結果の型で( there )collectに適切に注釈を付ける必要があることを意味します。ErrorHandlerFailOnErrorFailOnError[List[T]]

def find(query: JsObject = Json.obj())(implicit reader: Reads[T]): Future[List[T]] = collection.flatMap(_.find(query).cursor[T](ReadPreference.nearest).collect[List](Int.MaxValue, Cursor.FailOnError[List[T]]()))
于 2016-09-07T18:59:51.503 に答える