Skip to content

Instantly share code, notes, and snippets.

@josinSbazin
Last active October 19, 2016 12:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save josinSbazin/896dea893eea0944ad10abb24eefcefc to your computer and use it in GitHub Desktop.
Save josinSbazin/896dea893eea0944ad10abb24eefcefc to your computer and use it in GitHub Desktop.
level09.lesson02.task02
package com.javarush.test.level09.lesson02.task02;
/* И снова StackTrace
Написать пять методов, которые вызывают друг друга. Каждый метод должен возвращать имя метода, вызвавшего его, полученное с помощью StackTrace.
*/
public class Solution {
public static void main(String[] args) throws Exception {
method1();
System.out.println(method1());
System.out.println(method2());
System.out.println(method3());
System.out.println(method4());
System.out.println(method5());
}
public static String method1() {
method2();
return Thread.currentThread().getStackTrace()[2].getMethodName();//напишите тут ваш код
}
public static String method2() {
method3();
return Thread.currentThread().getStackTrace()[2].getMethodName();//напишите тут ваш код
}
public static String method3() {
method4();
return Thread.currentThread().getStackTrace()[2].getMethodName();//напишите тут ваш код
}
public static String method4() {
method5();
return Thread.currentThread().getStackTrace()[2].getMethodName();//напишите тут ваш код
}
public static String method5() {
return Thread.currentThread().getStackTrace()[2].getMethodName();//напишите тут ваш код
}
}
@josinSbazin
Copy link
Author

Решение верное, но не очень понимаю. В условии указано "Каждый метод должен возвращать имя метода, вызвавшего его". Т.е. по логике вещей, например, метод 4 должен возвращать имя метода 3, т.к. метод 4 вызывается в методе 3? А здесь получается, что все методы вызывает метод мейн непосредственно...

@Alexandr056
Copy link

решение не верное, вывод работы программы:
main
main
main
main
main
уже в который раз смотрю на гите, тут очень часто выкладывают то что не работает

@Alexandr056
Copy link

public class Solution
{
public static void main(String[] args) throws Exception
{
method1();
}

public static String method1()
{
    method2();
    StackTraceElement[] stackTraceElement = Thread.currentThread().getStackTrace();
    return stackTraceElement[2].getMethodName();
}

public static String method2()
{
    method3();
    StackTraceElement[] stackTraceElement = Thread.currentThread().getStackTrace();
    return stackTraceElement[2].getMethodName();

}

public static String method3()
{
    method4();
    StackTraceElement[] stackTraceElement = Thread.currentThread().getStackTrace();
    return stackTraceElement[2].getMethodName();

}

public static String method4()
{
    method5();
    StackTraceElement[] stackTraceElement = Thread.currentThread().getStackTrace();
    return stackTraceElement[2].getMethodName();

}

public static String method5()
{
    StackTraceElement[] stackTraceElement = Thread.currentThread().getStackTrace();
    return stackTraceElement[2].getMethodName();

}

}

собственно вот верное решение.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment