public static void main(String[] args) throws Exception {
method1();
}
public static String method1() {
method2();
StackTraceElement[] elements = Thread.currentThread().getStackTrace();
System.out.println(elements[elements.length - 2].getMethodName());
return elements[elements.length - 2].getMethodName();
}
public static String method2() {
method3();
StackTraceElement[] elements = Thread.currentThread().getStackTrace();
System.out.println(elements[elements.length - 2].getMethodName());
return elements[elements.length - 2].getMethodName();
}
public static String method3() {
method4();
StackTraceElement[] elements = Thread.currentThread().getStackTrace();
System.out.println(elements[elements.length - 2].getMethodName());
return elements[elements.length - 2].getMethodName();
}
public static String method4() {
method5();
StackTraceElement[] elements = Thread.currentThread().getStackTrace();
System.out.println(elements[elements.length - 2].getMethodName());
return elements[elements.length - 2].getMethodName();
}
public static String method5() {
StackTraceElement[] elements = Thread.currentThread().getStackTrace();
System.out.println(elements[elements.length - 2].getMethodName());
return elements[elements.length - 2].getMethodName();
}
}
По логике вещей ожидал, что будет печататься имя предыдущего метода...package com.javarush.task.task09.task0902;
/*
И снова StackTrace
*/
public class Solution {
public static void main(String[] args) throws Exception {
method1();
}
public static String method1() {
method2();
StackTraceElement[] elements = Thread.currentThread().getStackTrace();
return elements[elements.length - 2].getMethodName();
}
public static String method2() {
method3();
StackTraceElement[] elements = Thread.currentThread().getStackTrace();
return elements[elements.length - 2].getMethodName();
}
public static String method3() {
method4();
StackTraceElement[] elements = Thread.currentThread().getStackTrace();
return elements[elements.length - 2].getMethodName();
}
public static String method4() {
method5();
StackTraceElement[] elements = Thread.currentThread().getStackTrace();
return elements[elements.length - 2].getMethodName();
}
public static String method5() {
StackTraceElement[] elements = Thread.currentThread().getStackTrace();
return elements[elements.length - 2].getMethodName();
}
}