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