如何获取该方法的scala方法名和类

如何获取该方法的scala方法名和类,scala,Scala,我有一个函数处理给定函数的重试逻辑。在该函数中,我想打印一个带有给定函数名和类名的调试日志(当然调用方可以传递该信息),但我想知道如何在不调用的情况下获取这些值 我的重试方法如下,现在我得到methodName作为参数,我可以从fn中获取它吗 def retry[T](attempts: Int, max: Int, operation: String)(fn: => T): T = { try { fn } catch { case e : T

我有一个函数处理给定函数的重试逻辑。在该函数中,我想打印一个带有给定函数名和类名的调试日志(当然调用方可以传递该信息),但我想知道如何在不调用的情况下获取这些值

我的重试方法如下,现在我得到methodName作为参数,我可以从fn中获取它吗

  def retry[T](attempts: Int, max: Int, operation: String)(fn: => T): T = {
    try {
      fn
    } catch {
      case e : Throwable => {
        if (attempts < max) {
          val retryAttempt = attempts + 1
          Thread.sleep((scala.math.pow(2, retryAttempt) * 2000).toLong)
          logger.debug(s"Retrying operation: $operation retryCount $retryAttempt")
          retry(retryAttempt, max, operation)(fn)
        } else {
          throw e
        }
      }
    }
  }
def retry[T](尝试次数:Int,最大值:Int,操作:字符串)(fn:=>T):T={
试一试{
fn
}抓住{
案例e:可丢弃=>{
如果(尝试次数<最大值){
val retrytry=truments+1
Thread.sleep((scala.math.pow(2,重试)*2000).toLong)
debug(s“重试操作:$operation retryCount$retrytryt”)
重试(重试尝试、最大值、操作)(fn)
}否则{
掷e
}
}
}
}

很抱歉,想编辑,但因其他工作而分心。。非常抱歉。非常抱歉,想编辑,但因其他工作而分心。。非常抱歉。