我在Scala中遇到了一個問題我真的被困住了。我知道標題可能更混亂,所以讓我儘可能簡單地解釋它。想象一下,我有一個叫Repo
的abstract class
。這個類描述了幾個方法,其中大部分已經實現。類Repo
看起來是這樣的:從實現中導入泛型類的隱式變量
abstract class Repo[T](name: String) {
implicit def collection(implicit db: DefaultDB): JSONCollection =
db.collection[JSONCollection](name)
def findOne(selector: JsObject)(implicit collection: JSONCollection): Future[Option[T]] = {
collection.find(selector).one[T]
}
...
}
基本實現這個類的應該是這樣的:
import models.Models.Resume._
object ResumeRepo extends Repo[Resume]("resumes")
現在,如果我嘗試編譯此,它給了我一個錯誤,他說:「沒有找到類型爲Json的串行器。嘗試實現這種類型的隱式Writes或Format。「這很奇怪,因爲我在ResumeRepo
實現類中明確包含了隱含的Format
。爲什麼這個錯誤顯示?
奇怪的是,該警告提到'T'代替解析爲在編譯時這種類型的參數的類型。 – cchantep
那麼..你說你明確擁有'Format'或'Writes'的實現在哪裏? –
@ m-z它在簡歷模型中定義。 Resume模型只是一個案例類,格式只是基於案例類。我需要包含它嗎? – Martijn