如何导入隐式对象?

How to import an implicit object?

也许这是一个愚蠢的问题,但编译以下内容可以得到 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]
}

谢谢。

只需在导入之前定义对象 Inner。所以,这很好用。

object Outer {
  object Inner {
    sealed trait MyImplicit[T]
    implicit case object IntImplicit extends MyImplicit[Int]
  }
  import Inner._

  def someMethod[T : MyImplicit] = {}
  someMethod[Int]
}