Друзья не понимаю, откуда invoke появились? Почему он не выходит из цикла , когда доходит до метода main?
package com.javarush.task.task09.task0904;
/*
Стек-трейс длиной 10 вызовов
*/
public class Solution {
public static void main(String[] args) throws Exception {
int stackTraceLength = method1().length - method10().length + 1;
System.out.println(stackTraceLength);
}
public static StackTraceElement[] method1() {
return method2();
}
public static StackTraceElement[] method2() {
return method3();//напишите тут ваш код
}
public static StackTraceElement[] method3() {
return method4();//напишите тут ваш код
}
public static StackTraceElement[] method4() {
return method5(); //напишите тут ваш код
}
public static StackTraceElement[] method5() {
return method6();//напишите тут ваш код
}
public static StackTraceElement[] method6() {
return method7();//напишите тут ваш код
}
public static StackTraceElement[] method7() {
return method8();//напишите тут ваш код
}
public static StackTraceElement[] method8() {
return method9();//напишите тут ваш код
}
public static StackTraceElement[] method9() {
return method10();
}
public static StackTraceElement[] method10() {
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
for (StackTraceElement element : stackTraceElements)
{
System.out.println(element.getMethodName());
}
return Thread.currentThread().getStackTrace();
}
}
getStackTrace
method10
method9
method8
method7
method6
method5
method4
method3
method2
method1
main
invoke0
invoke
invoke
invoke
main
getStackTrace
method10
main
invoke0
invoke
invoke
invoke
main
10