未找到Scala隐式参数

时间:2017-02-24 23:59:31

标签: scala implicit

我正在尝试写这个object

object Timed {
  def apply[T](fn: => T)(implicit logger: Logger): T =
    measureDuration(Thread.currentThread().getStackTrace.last.getMethodName, TimeUnit.MILLISECONDS, fn, logger)
}

我想要这样(在另一个class中):

def test(): Unit = {
  val logger: Logger = LoggerFactory.getLogger("testTimed")
  Timed { someFunction() }
}

并且一切似乎都在范围内(相同的包),但我一直得到:

could not find implicit value for parameter logger: org.slf4j.Logger
Timed { someFunction() }

我能够完成这项工作的唯一方法是基本上不使用隐式:

Timed { someFunction() }(logger)

工作 - 这显然违背了目的。

我错过了什么?

0 个答案:

没有答案