假设我有两个特定的object
,我可以从中检索导入。假设两个对象都有我想要使用的多个有用的导入。为简单起见,我只包括1:
scala> object Implicits1 { implicit def good: String => Int = _ => 42 }
defined object Implicits1
scala> object Implicits2 { implicit def bad: String => Int = _ => 666 }
defined object Implicits2
然后,给定foo
:
scala> def foo(x: Int): Int = x
foo: (x: Int)Int
我执行我的通配符导入以获取含义:
scala> import Implicits1._
import Implicits1._
scala> import Implicits2._
import Implicits2._
在REPL上运行foo(".")
表示隐式Implicits2.bad
已解决:
scala> foo(".")
res0: Int = 666
但是,我实际上想要Implicits1.good
,而不是Implicits2.bad
。
但是,我可以在编译时指定允许或禁止特定的隐含吗?