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