如何导入隐式对象?
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]
}
也许这是一个愚蠢的问题,但编译以下内容可以得到 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]
}