Более короткий метод динамического определения имени текущего метода
Я ищу способ получить имя текущего метода, не создавая пустой объект. Есть ли способ сделать это? Это приведет к упорядочению кода регистрации.
Вот что мы делаем сейчас:
new Object() {}.getClass().getEnclosingMethod().getName(
Ответ 1
Как насчет Thread.currentThread().getStackTrace()[1]?
Так как это позволяет вам изучать более высокие уровни трассировки стека, вы можете легко обернуть это в вспомогательный метод (см. ниже). Он также дает вам возможность получить немного больше информации, чем просто имя метода, например имя файла, номер строки и т.д.
edit Вспомогательный метод может выглядеть примерно так (спасибо @Esailija):
public static String getMethodName() {
return Thread.currentThread().getStackTrace()[2].getMethodName();
}