Если запустить код такого вида:
public class Solution {
public static void main(String[] args) throws Exception {
method1();
}
public static String method1() {
// method2();
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
for (int i = 0; i < stackTraceElements.length; i++) {
System.out.println(stackTraceElements[i].getMethodName());
}
System.out.println();
return stackTraceElements[2].getMethodName();
Получим такой вывод на экран:
getStackTrace
method1
main
invoke0
invoke
invoke
invoke
callMainMethod
execute
execute
main
main
Первые три строчки по логике можно догадаться что означают, а что означают все остальные?