Получить имя текущей функции в Kotlin

Обновить

Как я могу получить имя функции, которое в настоящее время выполняется с помощью Kotlin?

Я пытаюсь получить имя функции функции, которая в настоящее время выполняется, как показано ниже, но она всегда приходит как null

val funName = Object().'class'.enclosingMethod?.name;

Ответ 1

Я нашел один из способов: -

val name = object : Any() {

}.javaClass.enclosingMethod.name

Выше код также может быть уточнен как -

val name = object{}.javaClass.enclosingMethod.name

Изменить, потому что неправильный флаг дублирования не позволяет новый ответ:

Более Java-способ заключается в следующем:

Thread.currentThread().stackTrace[1].methodName

но в моей системе это занимает ~ 47 мс по сравнению с ~ 13 мс для объекта(): почти в 4 раза медленнее.