我正在尝试写这个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)
工作 - 这显然违背了目的。
我错过了什么?