Метод получающий имя метода, в котором он был вызван
Нужно написать метод(а), который вызывается внутри другого метода(б) и, например, выводит в консоль имя того метода, в котором был вызван(б). Какой лучший способ реализовать это?
Ответы (1 шт):
Автор решения: StateItPrimitive
→ Ссылка
Реализуется через получение StackTrace текущего потока исполнения:
public class Example {
public static void main(String[] args) {
new Example().callerMethod();
}
public void callerMethod() {
calledMethod();
}
public void calledMethod() {
StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
// 0 - это сам метод getStackTrace();
// 1 - это вызываемый метод (calledMethod);
// 2 - это вызывающий (родительский) метод (callerMethod).
StackTraceElement stackTraceElement = stackTrace[2];
System.out.println(stackTraceElement.getMethodName()); // callerMethod
}
}