Как не бился, не могу понять, как в соответствии с требованиями задачи получить 10 вызовов в стеке. При вызове каждого метода из другого всегда получается 12.
package com.javarush.task.task09.task0904;
/*
Стек-трейс длиной 10 вызовов
*/
public class Solution {
public static void main(String[] args) throws Exception {
method1();
}
public static StackTraceElement[] method1() {
method2();
return Thread.currentThread().getStackTrace();
}
public static StackTraceElement[] method2() {
//напишите тут ваш код
method3();
return Thread.currentThread().getStackTrace();
}
public static StackTraceElement[] method3() {
//напишите тут ваш код
method4();
return Thread.currentThread().getStackTrace();
}
public static StackTraceElement[] method4() {
//напишите тут ваш код
method5();
return Thread.currentThread().getStackTrace();
}
public static StackTraceElement[] method5() {
//напишите тут ваш код
method6();
return Thread.currentThread().getStackTrace();
}
public static StackTraceElement[] method6() {
//напишите тут ваш код
method7();
return Thread.currentThread().getStackTrace();
}
public static StackTraceElement[] method7() {
//напишите тут ваш код
method8();
return Thread.currentThread().getStackTrace();
}
public static StackTraceElement[] method8() {
//напишите тут ваш код
method9();
return Thread.currentThread().getStackTrace();
}
public static StackTraceElement[] method9() {
method10();
return Thread.currentThread().getStackTrace();
}
public static StackTraceElement[] method10() {
//printStack(Thread.currentThread().getStackTrace());
return Thread.currentThread().getStackTrace();
}
/*
public static void printStack (StackTraceElement[] st) {
System.out.println("Текущий метод: " + st[1].getMethodName());
System.out.println("Размер стека элементов: "+st.length);
System.out.println("Содержание стека:");
for (int i =0; i < st.length;i++) {
System.out.println("Индекс элемента: "+i+", значение элемента: "+st[i].getMethodName());
}
System.out.println("===============================");
System.out.println("");
}*/
}
package com.javarush.task.task09.task0904;
/*
Стек-трейс длиной 10 вызовов
*/
public class Solution {
public static void main(String[] args) throws Exception {
method1();
}
public static StackTraceElement[] method1() {
method2();
return Thread.currentThread().getStackTrace();
}
public static StackTraceElement[] method2() {
//напишите тут ваш код
method3();
return Thread.currentThread().getStackTrace();
}
public static StackTraceElement[] method3() {
//напишите тут ваш код
method4();
return Thread.currentThread().getStackTrace();
}
public static StackTraceElement[] method4() {
//напишите тут ваш код
method5();
return Thread.currentThread().getStackTrace();
}
public static StackTraceElement[] method5() {
//напишите тут ваш код
method6();
return Thread.currentThread().getStackTrace();
}
public static StackTraceElement[] method6() {
//напишите тут ваш код
method7();
return Thread.currentThread().getStackTrace();
}
public static StackTraceElement[] method7() {
//напишите тут ваш код
method8();
return Thread.currentThread().getStackTrace();
}
public static StackTraceElement[] method8() {
//напишите тут ваш код
method9();
return Thread.currentThread().getStackTrace();
}
public static StackTraceElement[] method9() {
method10();
return Thread.currentThread().getStackTrace();
}
public static StackTraceElement[] method10() {
//printStack(Thread.currentThread().getStackTrace());
return Thread.currentThread().getStackTrace();
}
/*
public static void printStack (StackTraceElement[] st) {
System.out.println("Текущий метод: " + st[1].getMethodName());
System.out.println("Размер стека элементов: "+st.length);
System.out.println("Содержание стека:");
for (int i =0; i < st.length;i++) {
System.out.println("Индекс элемента: "+i+", значение элемента: "+st[i].getMethodName());
}
System.out.println("===============================");
System.out.println("");
}*/
}