也许这是一个愚蠢的问题,但编译以下内容会给出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
尽管导入了?有没有办法让编译器在IntImplicit
对象中找到Inner
?
更新:如果我取消嵌套Inner
怎么办? - 我将如何导入呢?
object Outer {
import Other._
def someMethod[T : MyImplicit] = {}
someMethod[Int]
}
object Other {
sealed trait MyImplicit[T]
implicit case object IntImplicit extends MyImplicit[Int]
}
感谢。
答案 0 :(得分:2)
在导入对象之前,只需定义对象Inner。所以,这很好用。
object Outer {
object Inner {
sealed trait MyImplicit[T]
implicit case object IntImplicit extends MyImplicit[Int]
}
import Inner._
def someMethod[T : MyImplicit] = {}
someMethod[Int]
}