여기가 나의 첫 번째 질문이므로 충분한 정보를 제공하시기 바랍니다. 설명을 요청하십시오.스칼라 : 컨텍스트 바인딩을 얻는 방법 List [T] conversion working here?
작품 대가로 다음 촬영 : 코드
implicit def optionBsonReader[T, U](implicit ev: BsonReader[T, U]) = new BsonReader[Option[T], Option[U]] {
def read(obj: Option[U]): Option[T] = {
obj match {
case Some(x) => Some(x.fromBson[T])
case None => None
}
}
}
이 부분은 또 다른 옵션 [T]에 BSON의 옵션 래핑 편 변환한다. 나는 동일한 목록을 위해 일 것이라고 생각하지만, 다음은 컴파일되지 않습니다 :
implicit def listBsonReader[T, DBObject](implicit ev: BsonReader[T, DBObject]) = new BsonReader[List[T], MongoCursor] {
def read(cur: MongoCursor): List[T] = {
cur.map(_.fromBson[T]).toList
}
}
나는 일반 역학에 대해 다음 코드를 사용하고 있습니다 :
package object bson {
def bsonReader[A, B](implicit reader: BsonReader[A, B]) = reader
def bsonWriter[A, B](implicit writer: BsonWriter[A, B]) = writer
implicit def addWriter[A](any: A): WithWriter[A] = new WithWriter(any)
implicit def addReader[A](any: A): WithReader[A] = new WithReader(any)
}
package bson {
private[bson] class WithWriter[A](any: A) {
def toBson[B](implicit writer: BsonWriter[A, B]): B = writer.write(any)
}
private [bson] class WithReader[B](any: B) {
def fromBson[A](implicit reader: BsonReader[A, B]): A = reader.read(any)
}
}
컴파일러 오류 : could not find implicit value for parameter reader: project.marshalling.bson.BsonReader[T,com.mongodb.casbah.Imports.DBObject] cur.map(_.fromBson[T]).toList
컴파일러가 fromBson이 형식을 제공하기 전에 호출되기 전에 T를 평가하려고하는 것처럼 이상하게 생각됩니다. 옵션 독자가 그런 불평이없는 것처럼 보이는 이래로 이것은 특히 이상하게 내가 나를 때린다. 필자는 최근 스칼라에서 본격적으로 코드를 작성하기 시작 했으므로 여기서 뭔가를 놓치고 있다고 확신합니다.
더 많은 정보가 필요하면 도움을 받으시겠습니까? 최고의
,더크 당신의 listBsonReader에서
뭔가가 여기에 맞지 않습니다. 따옴표 붙은 코드에 매개 변수'reader'가 없습니다. 코드 예제와 그 예제에서 발생한 정확한 오류를 알려주시겠습니까? ... 여기에 붙여 넣기 전에 편집 할 필요가 없습니다. –
편집에서 추가 정보보기 – dlouwers