1
也許這是一個愚蠢的問題,但在編譯下面給出error: could not find implicit value for evidence parameter of type Outer.Inner.MyImplicit[Int]
:如何導入隱式對象?
object Outer {
import Inner._
def someMethod[T : MyImplicit] = {}
someMethod[Int]
object Inner {
sealed trait MyImplicit[T]
implicit case object IntImplicit extends MyImplicit[Int]
}
}
爲什麼不能Outer
對象看IntImplicit
儘管進口?有沒有辦法讓編譯器在Inner
對象內找到IntImplicit
?
更新:如果我解除嵌套Inner
會怎麼樣?
object Outer {
import Other._
def someMethod[T : MyImplicit] = {}
someMethod[Int]
}
object Other {
sealed trait MyImplicit[T]
implicit case object IntImplicit extends MyImplicit[Int]
}
謝謝。
@Sergey任何想法如果我反而有一個單獨的(非嵌套的)對象,我會怎麼做? (見更新) – Lasf
我會補充說明,當你有一個明確的簽名時,順序並不重要:'implicit val IntImplicit:MyImpicit [Int] = new MyImplicit [Int] {}'。但是沒有辦法把'case object'放在一個。 –
我認爲這是我對我的更新的回答。謝謝。 – Lasf