Вы можете использовать Thread.currentThread.getStackTrace()
для достижения этого.
Более подробную информацию об этом можно найти в официальной документации .
Возвращает Array[StackTraceElement]
,где каждый StackTraceElement
содержит класс, метод, имя файла и номер строки вызывающей стороны, упорядоченные сверху вниз по стеку вызовов.
Вы можете запустить следующий метод в оболочке Scala, чтобы получить представлениерезультата:
def stackTraceInfo(thread: Thread): Seq[String] =
thread.getStackTrace.map(ste => s"${ste.getClassName}.${ste.getMethodName}")
Например, может дать что-то вроде следующего:
scala> stackTraceInfo(Thread.currentThread).foreach(println)
java.lang.Thread.getStackTrace
$line7.$read$$iw$$iw$.stackTraceInfo
$line10.$read$$iw$$iw$.<init>
$line10.$read$$iw$$iw$.<clinit>
$line10.$eval$.$print$lzycompute
$line10.$eval$.$print
$line10.$eval.$print
...